Lỗi dữ liệu không có gì khi làm việc với web

  • Thread starter Deleted member 293
  • Ngày gửi
D

Deleted member 293

Guest
Kính gửi anh chị
Em có code như sau, không lấy được giá trị trả về :
Mã:
Function getStatus(ByVal number As String) As Object
    Dim http As Object
    Set http = CreateObject("MSXML2.XMLHTTP")

    http.Open "POST", "http://xxxURL", False
    http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    http.send number

    Do While http.readyState < 4
        DoEvents
    Loop

    Dim html As Object
    Set html = CreateObject("htmlFile")
    html.write http.responseText

    Dim statusData As Object
    Set statusData = html.getElementsByClassName("aaa")
    Do While statusData(0) = Empty
        DoEvents
    Loop
    Set getStatus = statusData
End Function

Sub aaa()
    Dim number As String
    number = Range("A2").Value

    Dim status As Object
    Set status = getStatus(number)

    Dim cnt As Long
    cnt = status.Length
        'Xuat du lieu ra Excel'

End Sub
Em không lấy được dữ liệu ở đây:
Mã:
cnt = status.Length
Em kiểm tra thì status chẳng có giá trị gì. Không nothing cũng không Empty.
Ở trong Function, em đã đưa được dữ liệu vào trong statusData .

Win 10 64bit.
Office 2016 64bit.
 

phuonghong1997

Yêu THVBA như điếu đổ
Có một chỗ em thấy không yên tâm lắm :
Mã:
Set html = CreateObject("htmlFile")
biến html được khai báo trong Function.
Khi thoát ra khỏi Function thì biến html này bị giải phóng, không còn nữa. Kết quả là biến status sẽ bị mất dữ liệu.
Anh chị thử thay đổi vị trí khai báo biến html, khai báo bên ngoài Function, để là Public xem sao ạ.
 
D

Deleted member 293

Guest
Em cảm ơn . Em vừa thử và đã được rồi .
 
Top