我是VBA新手!!我正在尝试自动执行特定流程,即“从Excel工作表复制客户详细信息并打开IE并转到特定URL,然后粘贴信息并单击”搜索“按钮并进入客户记录”我已成功完成过程但它在多个窗口中打开,因为我必须为许多客户执行此操作,这不是很好,所以我在线搜索并在IE的同一个WINDOW中成功打开了多个TABS中的客户记录页面。
现在真正的问题是我无法单独在每个窗口中输入客户的信息,它只是在“第一个窗口”中输入详细信息并进行搜索
以下是我使用的代码:
Set IE = CreateObject("InternetExplorer.application")
IE.Visible = True
IE.Navigate ThisWorkbook.Sheets("Sheet4").Range("Link")
Do
If IE.ReadyState = 4 Then
Exit Do
Else
DoEvents
End If
Loop
On Error Resume Next
IE.document.all("admin_name").Value = ThisWorkbook.Sheets("Sheet4").Range("User")
IE.document.all("admin_pass").Value = ThisWorkbook.Sheets("Sheet4").Range("Pass")
Set ElementCol = IE.document.getElementsByTagName("button")
For Each link In ElementCol
If link.innerHTML = "LOGIN" Then
link.Click
Exit For
End If
Next
Application.Wait (Now + TimeValue("0:00:04")) ' Utill this line the IE opens the URL (and it is password protected)
' From here on the code opens the customer's records page
x = Range("J1").CurrentRegion.Rows.Count
Y = x - 1
For i = 1 To Y
ActiveCell.Offset(1, -1).Select
Dim navi As String
navi = "Sample URL"
IE.Navigate navi, CLng(2048) ' This is code which i used to open webpages in multiple TABS
Application.Wait (Now + TimeValue("0:00:04"))
Dim Firstname As Variant
Firstname = ActiveCell.Value
IE.document.getelementsbyname("cc_first_six").Item.innertext = Firstname
ActiveCell.Offset(0, 1).Select
Dim Lastname As Variant
Lastname = ActiveCell.Value
IE.document.getelementsbyname("cc_last_four").Item.innertext = Lastname
Set ElementCol = IE.document.getElementsByTagName("a")
For Each link In ElementCol
If link.innerHTML = "Show Results" Then
link.Click
End If
Next
Next i
End Sub
代码运行良好,但它只使用第一个TAB并搜索所有客户,我想要做的是,它应该使用excel文件中的第一个客户的第二个TAB和第二个客户的第三个TAB在excel文件等等....(我能够完成我的需要,如果我使用多个窗口选项,但我想在同一个窗口但多个TABS)
答案 0 :(得分:0)
我做了很多研究,但我找不到适合这个问题的解决方案。但您可以使用sendkeys从一个选项卡移动到另一个选项卡。
SendKeys "^{TAB}", True
Application.Wait (Now() + TimeValue("00:00:10"))