Tự động đăng nhập vào trang web dùng ID và pass --Help

Liên hệ QC

meocon01

Thành viên mới
Tham gia
29/9/08
Bài viết
29
Được thích
2
Chào các bác,

Em đăng gặp khó khăn về code tự động đăng nhập vào trang web rồi lấy dữ liệu, vấn đề là em đã tìm được cách điền uer và password bằng cách xem code của trang web đó nhưng với nút đăng nhập thì em ko tìm thấy, nên không thể tự động đăng nhập bằng code được.

Mong các bác giúp đỡ em.
Cảm ơn các bác nhiều.

PHP:
Public Sub Launch()
    Const strURL_c As String = "https://www.vietinbank.vn/ipay/vbh/timeout.do"
    Const strUsr_c As String = "user"
    Const strPwd_c As String = "****"
    Dim objIE As SHDocVw.InternetExplorer
    Dim ieDoc As MSHTML.HTMLDocument
    Dim tbxPwdFld As MSHTML.HTMLInputElement
    Dim tbxUsrFld As MSHTML.HTMLInputElement
    Dim btnSubmit As MSHTML.HTMLInputElement
    On Error GoTo Err_Hnd
     'Create Internet Explorer Object
    Set objIE = New SHDocVw.InternetExplorer
     'Navigate the URL
    objIE.Navigate strURL_c
     'Wait for page to load
    Do Until objIE.ReadyState = READYSTATE_COMPLETE: Loop
         'Get document object
        Set ieDoc = objIE.Document
        'lay truong uername/password va nut dang nhap
         Set tbxPwdFld = ieDoc.all.Item("j_password") ' j_password-ID của pass 
        Set tbxUsrFld = ieDoc.all.Item("j_username")  'j_username  -ID của ueser name
        Set btnSubmit = ieDoc.all.Item("")   ' cái này chưa biết ID cua nut dang nhap
         'Fill Fields
        tbxUsrFld.Value = strUsr_c
        tbxPwdFld.Value = strPwd_c
           'Click submit
        btnSubmit.Click
         'Wait for page to load
        Do Until objIE.ReadyState = READYSTATE_COMPLETE: Loop
Err_Hnd:       '(Fail gracefully)
            objIE.Visible = True
End Sub
 
Chào các bác,

Em đăng gặp khó khăn về code tự động đăng nhập vào trang web rồi lấy dữ liệu, vấn đề là em đã tìm được cách điền uer và password bằng cách xem code của trang web đó nhưng với nút đăng nhập thì em ko tìm thấy, nên không thể tự động đăng nhập bằng code được.

Mong các bác giúp đỡ em.
Cảm ơn các bác nhiều.

PHP:
Public Sub Launch()
    Const strURL_c As String = "https://www.vietinbank.vn/ipay/vbh/timeout.do"
    Const strUsr_c As String = "user"
    Const strPwd_c As String = "****"
    Dim objIE As SHDocVw.InternetExplorer
    Dim ieDoc As MSHTML.HTMLDocument
    Dim tbxPwdFld As MSHTML.HTMLInputElement
    Dim tbxUsrFld As MSHTML.HTMLInputElement
    Dim btnSubmit As MSHTML.HTMLInputElement
    On Error GoTo Err_Hnd
     'Create Internet Explorer Object
    Set objIE = New SHDocVw.InternetExplorer
     'Navigate the URL
    objIE.Navigate strURL_c
     'Wait for page to load
    Do Until objIE.ReadyState = READYSTATE_COMPLETE: Loop
         'Get document object
        Set ieDoc = objIE.Document
        'lay truong uername/password va nut dang nhap
         Set tbxPwdFld = ieDoc.all.Item("j_password") ' j_password-ID của pass 
        Set tbxUsrFld = ieDoc.all.Item("j_username")  'j_username  -ID của ueser name
        Set btnSubmit = ieDoc.all.Item("")   ' cái này chưa biết ID cua nut dang nhap
         'Fill Fields
        tbxUsrFld.Value = strUsr_c
        tbxPwdFld.Value = strPwd_c
           'Click submit
        btnSubmit.Click
         'Wait for page to load
        Do Until objIE.ReadyState = READYSTATE_COMPLETE: Loop
Err_Hnd:       '(Fail gracefully)
            objIE.Visible = True
End Sub

Không có ID thì hơi mệt đây ;-)
Tôi đề nghị thử thế này.
Interface IHTMLDocument, IHTMLDocument2 có thuộc tính all là interface IHTMLElementCollection
Tôi đề nghị duyệt tập all từ đầu tới cuối và kiểm tra "anh nào" có TYPE là "submit". Ở đây may mắn là trang web có mỗi một anh có type là "submit" vậy tìm thấy thì ra khỏi vòng lặp.
Bạn thử code dưới xem. Những chỗ tôi thêm vào có mầu đỏ. Dòng xanh là tôi tắt đi.
Mã:
Public Sub Launch()
    Const strURL_c As String = "[URL]https://www.vietinbank.vn/ipay/vbh/timeout.do[/URL]"
    Const strUsr_c As String = "user"
    Const strPwd_c As String = "****"
    Dim objIE As SHDocVw.InternetExplorer
    Dim ieDoc As MSHTML.HTMLDocument
    Dim tbxPwdFld As MSHTML.HTMLInputElement
    Dim tbxUsrFld As MSHTML.HTMLInputElement
    Dim btnSubmit As MSHTML.HTMLInputElement
    [COLOR=#ff0000]Dim index As Long[/COLOR]
    
    On Error GoTo Err_Hnd
    
    
     'Create Internet Explorer Object
    Set objIE = New SHDocVw.InternetExplorer
     'Navigate the URL
    objIE.Navigate strURL_c
     'Wait for page to load
    Do Until objIE.ReadyState = READYSTATE_COMPLETE: Loop
         'Get document object
        Set ieDoc = objIE.Document
        
        [COLOR=#ff0000]On Error Resume Next
        For index = 0 To ieDoc.all.Length - 1
            Set btnSubmit = ieDoc.all.Item(index, 0)
            If btnSubmit.Type = "submit" Then
                Exit For
            End If
        Next index
        On Error GoTo Err_Hnd
[/COLOR]        
        'lay truong uername/password va nut dang nhap
         Set tbxPwdFld = ieDoc.all.Item("j_password") ' j_password-ID c?a pass
        Set tbxUsrFld = ieDoc.all.Item("j_username")  'j_username  -ID c?a ueser name
      [COLOR=#0000ff]  ' Set btnSubmit = ieDoc.all.Item("")   ' cái nay chua bi?t ID cua nut dang nhap[/COLOR]
         'Fill Fields
        tbxUsrFld.Value = strUsr_c
        tbxPwdFld.Value = strPwd_c
           'Click submit
        btnSubmit.Click
         'Wait for page to load
        Do Until objIE.ReadyState = READYSTATE_COMPLETE: Loop
Err_Hnd:       '(Fail gracefully)
            objIE.Visible = True
End Sub
 
Upvote 0
Cảm ơn bác nha, cách của bác hay đó, giờ em biết thêm một cách để tìm đối tượng mình cần,

loanh quanh trên mạng em tìm được mã code tương tự và áp dụng thành công
PHP:
With objIE.document.forms("login")  'login là id của form đăng nhập
  .all.Item("j_username").Value = "user"
  .all.Item("j_password").Value = "*****"
  .submit
End With

bằng cách xem source code của trang web đó em tìm được phần id của phần đăng nhập là: login, thế là áp dụng thành công.

- đoạn mã code dưới đây sao lại làm máy chạy chậm thế nhỉ, có phải do vòng lặp không bác, có cách nào hay hơn không.
PHP:
While objIE.Busy
  'Do Nothing
Wend
While objIE.document.readyState <> "complete"  'doi trang web load hết.

Cảm ơn bác nhiều nha, em chưa nhìn thấy nút thank đâu, chắc là do chưa đủ bài
 
Upvote 0
- đoạn mã code dưới đây sao lại làm máy chạy chậm thế nhỉ, có phải do vòng lặp không bác, có cách nào hay hơn không.
PHP:
While objIE.Busy
  'Do Nothing
Wend
While objIE.document.readyState <> "complete"  'doi trang web load hết.

Cảm ơn bác nhiều nha, em chưa nhìn thấy nút thank đâu, chắc là do chưa đủ bài

Tôi không hiểu lắm bạn dùng vòng lặp thứ nhất để làm gì. Vì theo tôi thì cho tới tận khi Document được nạp xong thì dĩ nhiên máy chủ bận rồi.
Còn về vòng lặp thứ hai thì bạn thử dùng Sleep xem
PHP:
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
...
Sleep(50) ' Sleep(10), Sleep(100)
 
Lần chỉnh sửa cuối:
Upvote 0
cảm ơn bác nhiều, mã code em có tự viết đâu, cóp nhặt chút xíu nên hiểu không nhiều lắm,
bác hay thưc khuya vậy ag
 
Upvote 0
Mong các bác lại giúp em tiếp, sau bao nhiêu ngày tìm hiểu em vẫn chưa làm được...hichic
Em cần đăng nhập vào trang web của ngân hàng rồi chuyển đến trang web cần lấy dữ liệu, mấy phần đăng nhập, chọn tài khoản,chọn ngày tháng cần lấy dữ liệu thì em làm được rồi, nhưng em vẫn ko biết cách kéo dữ liệu cần lấy về file excel của mình, chỉ cần tải dữ liệu về sheet bất kỳ trong file excel của mình
- dữ liệu em cần lấy là thông về giao dịch trong tài khoản để làm báo cáo hàng ngày (file:VietinBank - Online Banking.htm table)
-Những phần chữ comment mầu đỏ trong code là những phần khúc mắc của em, mong được giúp đỡ
PHP:
Set objie = CreateObject("InternetExplorer.Application")
 objie.navigate "https://www.vietinbank.vn/ipay/vbh/timeout.do"
 objie.Visible = True
 Do While objie.Busy Or Not objie.readyState = IE_READYSTATE.complete: DoEvents: Loop 'doi IE ready
'Phan dang nhap chinh la o day
With objie.document.forms("login")
  .all.Item("j_username").Value = "username"
  .all.Item("j_password").Value = "****"
  .submit
End With
 Do While objie.Busy Or Not objie.readyState = IE_READYSTATE.complete: DoEvents: Loop 'doi IE ready
'' vòng Do While này đôi khi bị lỗi, IE nhiều lúc vẫn load nhưng câu lệnh đã chuyển tiếp
 ''''''''''''''''''''''''''''''''''''''''' phan lay du lieu
   Sleep (3000)  ' sleep cho may nghi
'' neu chay F5 thì sẽ bị lỗi ở đây( tức là nó sẽ chuyển đến trang khác báo là phiên làm việc đã hết
'' chưa biết tại sao
'' nếu chạy từng bước F8 thì ok,
  objie.navigate "https://www.vietinbank.vn/ipay/vbh/account/history.do?&fullpage=1" 'trang lay du lieu
 Do While objie.Busy Or Not objie.readyState = IE_READYSTATE.complete: DoEvents: Loop 'wait for IE ready
     objie.document.getElementById("selAccno").Value = "102010000890090,D"   'gia tri cua chon loai tai khoan
      Sleep (200)
       'objIE.document.getElementById("trantyp").Value = "checked"  ' click chon theo 20 giao dich gan day nhat
          objie.document.getElementById("from").Value = "20/06/2012"
           Sleep (200)
           objie.document.getElementById("to").Value = "21/06/2012"
           Sleep (200)
           'objIE.document.forms("historyForm").submit
           objie.document.all("btn").Click
  Do While objie.Busy Or Not objie.readyState = IE_READYSTATE.complete: DoEvents: Loop 'doi IE ready
''' đến đây rồi nhưng ko biết cách kéo dữ liệu xuống file excel
'' dùng webquery ko được
 

File đính kèm

  • viettin.rar
    266.7 KB · Đọc: 212
Upvote 0
Mong các bác lại giúp em tiếp, sau bao nhiêu ngày tìm hiểu em vẫn chưa làm được...hichic
Em cần đăng nhập vào trang web của ngân hàng rồi chuyển đến trang web cần lấy dữ liệu, mấy phần đăng nhập, chọn tài khoản,chọn ngày tháng cần lấy dữ liệu thì em làm được rồi, nhưng em vẫn ko biết cách kéo dữ liệu cần lấy về file excel của mình, chỉ cần tải dữ liệu về sheet bất kỳ trong file excel của mình
- dữ liệu em cần lấy là thông về giao dịch trong tài khoản để làm báo cáo hàng ngày (file:VietinBank - Online Banking.htm table)
-Những phần chữ comment mầu đỏ trong code là những phần khúc mắc của em, mong được giúp đỡ
PHP:
Set objie = CreateObject("InternetExplorer.Application")
 objie.navigate "https://www.vietinbank.vn/ipay/vbh/timeout.do"
 objie.Visible = True
 Do While objie.Busy Or Not objie.readyState = IE_READYSTATE.complete: DoEvents: Loop 'doi IE ready
'Phan dang nhap chinh la o day
With objie.document.forms("login")
  .all.Item("j_username").Value = "username"
  .all.Item("j_password").Value = "****"
  .submit
End With
 Do While objie.Busy Or Not objie.readyState = IE_READYSTATE.complete: DoEvents: Loop 'doi IE ready
'' vòng Do While này đôi khi bị lỗi, IE nhiều lúc vẫn load nhưng câu lệnh đã chuyển tiếp
 ''''''''''''''''''''''''''''''''''''''''' phan lay du lieu
   Sleep (3000)  ' sleep cho may nghi
'' neu chay F5 thì sẽ bị lỗi ở đây( tức là nó sẽ chuyển đến trang khác báo là phiên làm việc đã hết
'' chưa biết tại sao
'' nếu chạy từng bước F8 thì ok,
  objie.navigate "https://www.vietinbank.vn/ipay/vbh/account/history.do?&fullpage=1" 'trang lay du lieu
 Do While objie.Busy Or Not objie.readyState = IE_READYSTATE.complete: DoEvents: Loop 'wait for IE ready
     objie.document.getElementById("selAccno").Value = "102010000890090,D"   'gia tri cua chon loai tai khoan
      Sleep (200)
       'objIE.document.getElementById("trantyp").Value = "checked"  ' click chon theo 20 giao dich gan day nhat
          objie.document.getElementById("from").Value = "20/06/2012"
           Sleep (200)
           objie.document.getElementById("to").Value = "21/06/2012"
           Sleep (200)
           'objIE.document.forms("historyForm").submit
           objie.document.all("btn").Click
  Do While objie.Busy Or Not objie.readyState = IE_READYSTATE.complete: DoEvents: Loop 'doi IE ready
''' đến đây rồi nhưng ko biết cách kéo dữ liệu xuống file excel
'' dùng webquery ko được

Bạn cần kéo tập tin VietinBank - Online Banking.htm table.htm? Toàn bộ đường dẫn là thế nào?
Nếu đã biết đường dẫn và đã đăng nhập thì bạn thử dùng UrlDownloadToFile xem sao.
http://www.giaiphapexcel.com/forum/search.php?searchid=4204572
 
Upvote 0
dạ không phải em cần tải tập tin đó mà là lấy bảng dữ liệu như file đính kèm, dữ liệu của bảng được chép vào một sheet nào đó của file excel, dựa vào đó em sẽ làm báo cáo tiếp, vì trang web của viettin cần phải đăng nhập với user và pass trước mới chuyển đến được trang có bảng dữ liệu

https://www.vietinbank.vn/ipay/vbh/account/history.do?&fullpage=1

, bác có thể có mẫu code nào có thể lấy được dữ liệu như vậy ko, hoặc có thể chỉ em cách lấy, em thử dùng truy tìm các bảng table nhưng gặp lỗi, hình như ko có .count thì phải, hoặc dữ liệu đó ko phải là table.

Set AdDivElements = IEdoc.getElementsByTagName("table").count
 

File đính kèm

  • table.JPG
    table.JPG
    100.4 KB · Đọc: 180
Upvote 0
dạ không phải em cần tải tập tin đó mà là lấy bảng dữ liệu như file đính kèm, dữ liệu của bảng được chép vào một sheet nào đó của file excel, dựa vào đó em sẽ làm báo cáo tiếp, vì trang web của viettin cần phải đăng nhập với user và pass trước mới chuyển đến được trang có bảng dữ liệu

https://www.vietinbank.vn/ipay/vbh/account/history.do?&fullpage=1

, bác có thể có mẫu code nào có thể lấy được dữ liệu như vậy ko, hoặc có thể chỉ em cách lấy, em thử dùng truy tìm các bảng table nhưng gặp lỗi, hình như ko có .count thì phải, hoặc dữ liệu đó ko phải là table.

Set AdDivElements = IEdoc.getElementsByTagName("table").count
Trời ơi, nếu là tôi thì tôi sẽ viết như thế này.
Em "đang đứng" ở trang web xyz (trang web có đính kèm ở dưới). Trong trang web này có nhiều TABLE, em muốn tải nội dung của TABLE như hình đính kèm về Sheet
Có đúng với yêu cầu của bạn không?
Tại sao tôi lại phải đính kèm trang web? Nếu không đính kèm trang web thì người giúp làm sao giúp được? Mỗi trang web có cấu trúc khác nhau, TABLE có thể nằm ở những chỗ khác nhau, nếu không có trang web thì làm sao tìm được TABLE?
Vấn đề trước hết là tìm được cái "anh chàng" mà mình quan tâm, vd. TABLE. Trên trang web có thể có nhiều TABLE, vậy để tìm ra được anh mà mình muốn thì phải: nếu các anh ấy có một đặc điểm khác nhau (vd. ID) thì ta tìm theo đặc điểm ấy, còn nếu không có những đặc điểm khác nhau thì ta phải biết anh ta quan tâm nằm ở vị trí thứ mấy trong tất cả các anh cùng loại. Cần trang web là để xác định hoặc ID (hoặc đặc điểm khác) hoặc vị trí, vì mỗi trang web nói chung có cấu trúc khác nhau.
Trong th của bạn các TABLE không có đặc điểm nhận dạng, nhưng căn cứ vào trang web mà bạn gửi trong bài 1 thì tôi xác định bạn cần tải TABLE cuối cùng, tức TABLE thứ 5.
Ta thống nhất với nhau là bạn "đang đứng" ở trang "VietinBank - Online Banking.htm table.htm" - tức bạn đã mở được trang đó rồi. Bây giờ bạn cần tải cái bảng như trong hình.
Code viết thêm là:
PHP:
Do Until objIE.ReadyState = READYSTATE_COMPLETE
        DoEvents
    Loop
'    tại đây trang web "VietinBank - Online Banking.htm table.htm" đang hiển thị
    Set ieDoc = objIE.Document  ' Dim ieDoc As MSHTML.HTMLDocument
    ' coll là collection các TABLE có trong Document - Dim coll As MSHTML.IHTMLElementCollection
    Set coll = ieDoc.getElementsByTagName("TABLE")
'    chọn TABLE cuối cùng trong collection - Dim pTable As MSHTML.IHTMLTable
    Set pTable = coll.Item(coll.Length - 1, 0)
    Set coll = Nothing
'    duyệt từng dòng của bảng
    For row = 0 To pTable.Rows.Length - 1
'        mỗi dòng là collection các ô trong dòng đó - Dim pCells As MSHTML.IHTMLElementCollection
        Set pCells = pTable.Rows.Item(row, 0).Cells
'        duyêt qua các ô trong dòng hiện hành
        For col = 0 To pCells.Length - 1
'            ghi vào sheet hiện hành
            ActiveSheet.Cells(row + 1, col + 1).Value = pCells.Item(col, 0).innerText
        Next col
    Next row
    
    Set pCells = Nothing
    Set pTable = Nothing
-----------------------
Để bạn có khái niệm tôi cho ví dụ: mở trang web "http://www.vietinbank.vn/web/home/vn/doc/saving/exrate.html" --> sao bảng Tỷ giá xuống sheet.
Lưu ý là mỗi trang web có cấu trúc khác nhau nên code chỉ dùng cho trang web cụ thể
code ThisWorkbook
PHP:
Private Sub Workbook_Open()
    TaiBang
End Sub
code module
PHP:
Sub TaiBang()
    Dim objIE As SHDocVw.InternetExplorer
    Dim ieDoc As MSHTML.HTMLDocument
    Dim pTable As MSHTML.IHTMLTable
    Dim pCells As MSHTML.IHTMLElementCollection
    Dim coll As MSHTML.IHTMLElementCollection
    Dim row As Long, col As Long
    
    Set objIE = New SHDocVw.InternetExplorer
    objIE.Navigate "http://www.vietinbank.vn/web/home/vn/doc/saving/exrate.html"
'''    objIE.Visible = True
    Do Until objIE.ReadyState = READYSTATE_COMPLETE
        DoEvents
    Loop
    
    Set ieDoc = objIE.Document
    
    Set coll = ieDoc.getElementsByTagName("TABLE")
    
    Set pTable = coll.Item(1, 0)
    Set coll = Nothing
    
    For row = 0 To pTable.Rows.Length - 1
        Set pCells = pTable.Rows.Item(row, 0).Cells
        For col = 0 To pCells.Length - 1
            If row = 0 And col > 2 Then
                ActiveSheet.Cells(row + 1, col + 2).Value = pCells.Item(col, 0).innerText
            ElseIf row = 1 Then
                ActiveSheet.Cells(row + 1, col + 3).Value = pCells.Item(col, 0).innerText
            Else
                ActiveSheet.Cells(row + 1, col + 1).Value = pCells.Item(col, 0).innerText
            End If
        Next col
    Next row
    
    objIE.Quit
    
    Set pCells = Nothing
    Set pTable = Nothing
    Set ieDoc = Nothing
    Set objIE = Nothing
End Sub
 

File đính kèm

  • TaiBang.xls
    41 KB · Đọc: 241
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn bác nhiều, em diễn đạt chưa được tốt làm khiến bác khó hiểu, thật sự xin lỗi bác về điều này,
Bác đã hiểu đúng như yêu cầu của em,
em đã thử test code ở file Taibang.xls thì thấy chạy rất tốt, giờ em đã lấy được dữ liệu,
Cảm ơn bác nhiều, mong bác sức khỏe dồi dào để giúp được những gà mờ VBA như em.

Cảm giác khoái ghê khi làm được, mặc dù là đi nhờ.
 
Lần chỉnh sửa cuối:
Upvote 0
Mong các bác giúp em lần cuối này
Trên trang web giờ có hai nút Radio button, làm thế nào để chọn một trong hai nút đó bây giờ, khi click chọn một nút nào đó thì nó tự thực hiện code để hiển thị thông tin, trang web có sự thay đổi chút xíu về hiển thị
--Làm thế nào để chọn nó bây giờ? Mong được sự giúp đỡ của các Bác
Em đã thử code sau nhung ko hoạt động
IE.Document.getElementById.("trantyp").value = "02" 'ko hoat dong
IE.Document.getElementById.("trantyp").checked = true ' ko hoat dong

dưới đây là source code của hai Radio button.
<div id = "histyp" style = "display:block;"> <table border="0" cellspacing="0" cellpadding="0"> <colgroup> <col width="30%"/> <col width="70%"/> </colgroup> <tbody> <tr> <td class="trxbold" valign = "top">Chọn loại giao dịch:</td> <td> <input type="radio" name="trantyp" id="trantyp" value="01" checked="checked" onClick="doChange(this)" /> Theo 20 giao dịch gần nhất </td> </tr> <tr> <td></td> <td> <input type="radio" name="trantyp" id="trantyp" value="02" onClick="doChange(this)" /> Theo ngày </td> </tr> </tbody> </table> </div>
 
Lần chỉnh sửa cuối:
Upvote 0
Mong các bác giúp em lần cuối này
Trên trang web giờ có hai nút Radio button, làm thế nào để chọn một trong hai nút đó bây giờ, khi click chọn một nút nào đó thì nó tự thực hiện code để hiển thị thông tin, trang web có sự thay đổi chút xíu về hiển thị
--Làm thế nào để chọn nó bây giờ? Mong được sự giúp đỡ của các Bác
Em đã thử code sau nhung ko hoạt động


dưới đây là source code của hai Radio button.

Tôi có cái khó là không có trang web để test (không có mật khẩu để vào) nên chỉ viết chay thôi. Bạn thử xem code dưới đây có làm được không. Code viết vào chỗ sau khi bạn đã có trang web đó hiển thị.
PHP:
    ' Dim coll As MSHTML.IHTMLElementCollection
    ' Dim btnRadio As MSHTML.IHTMLInputElement
    Set coll = objIE.Document.getElementsByTagName("INPUT")
    
    For k = 0 To coll.Length - 1
        Set btnRadio = coll.Item(k, 0)
        If (btnRadio.Type = "radio") And (btnRadio.Value = "02") Then
            btnRadio.Click
            Exit For
        End If
    Next k
 
Upvote 0
Hay quá, làm việc rất tốt bác ag, nhân tiện bác Siwtom có tài liệu nào về VBA với internet không cho em xin với, em khoái cái vụ VBA với internet này lắm, trước đây em chưa bao giờ nghĩ là VBA có thể điều khiển những thao tác đơn giản với textbox, button, radio button trên internet.
Bác có tài liệu nào share cho em với nha.
Cảm ơn bác nhiều.
 
Upvote 0
Hay quá, làm việc rất tốt bác ag, nhân tiện bác Siwtom có tài liệu nào về VBA với internet không cho em xin với, em khoái cái vụ VBA với internet này lắm, trước đây em chưa bao giờ nghĩ là VBA có thể điều khiển những thao tác đơn giản với textbox, button, radio button trên internet.
Bác có tài liệu nào share cho em với nha.
Cảm ơn bác nhiều.

Tôi không có tài liệu nào cả. Tôi từng lập trình trong Delphi, cũng tìm hiểu một dạo về interface IHTMLDocument. Nói chung là đọc hỗ trợ, xem định nghĩa của tất cả các interface có trong MSHTML rồi thử nghiệm v...v
Giờ bạn cần code trong VBA thì tôi diễn giải bằng cú pháp VBA, thế thôi. Còn các interface kia cùng các method thì ở ngôn ngữ nào cũng thế.
VBA chỉ là công cụ thôi. Đẩ "điều khiển" bạn có thể dùng công cụ khác, tức viết code trong Delphi, Visual Basic, C cộng v...v
 
Upvote 0
dạ vâng, em hiểu rồi.
Trong phần code bác đã đưa có câu lệnh này em ko hiểu lắm
chỉ số 0 ý nghĩa là gì vậy bác.
Set pTable = coll.Item(coll.Length - 1, 0)
 
Upvote 0
dạ vâng, em hiểu rồi.
Trong phần code bác đã đưa có câu lệnh này em ko hiểu lắm
chỉ số 0 ý nghĩa là gì vậy bác.
Set pTable = coll.Item(coll.Length - 1, 0)

Tôi chả dùng bao giờ nên truyền 0 (thông số thứ 2 không bắt buộc - optional).
Trong help của Microsoft
Parameters
name [in]
Type: VARIANT
VARIANT of type VT_I4 or VT_BSTR that specifies the object or collection to retrieve. If this parameter is an integer, it is the zero-based index of the object. If this parameter is a string, all objects with matching IHTMLDOMAttribute2::name or IHTMLElement::id properties are retrieved, and a collection is returned if more than one match is made.
index [in, optional]
Type: VARIANT
VARIANT of type VT_I4 that specifies the zero-based index of the object to retrieve when a collection is returned.
Nói chung bạn nên đọc trợ giúp. Vd.
http://msdn.microsoft.com/en-us/library/hh870051(v=vs.85)
 
Upvote 0
Bạn cần kéo tập tin VietinBank - Online Banking.htm table.htm? Toàn bộ đường dẫn là thế nào?
Nếu đã biết đường dẫn và đã đăng nhập thì bạn thử dùng UrlDownloadToFile xem sao.
http://www.giaiphapexcel.com/forum/search.php?searchid=4204572
Vậy còn game thì sao bác ơi, liệu có thể cập nhật dữ liệu tự động từ 1 mini game trong webgame về excel không ạ
 
Upvote 0
Web KT
Back
Top Bottom