Sub Get_Data()
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate "http://www.scramble.nl/military-database/usaf"
Do While ie.Busy
Application.Wait DateAdd("s", 1, Now)
Loop
SendKeys "03-3114"
SendKeys "{ENTER}"
End Sub
下面的代码搜索键盘输入值 03-3114 并获取表格中的数据。如果我想搜索已经在单元格A1中的值并从表格中刮取值,那么代码,类型,CN,单位"在细胞范围内(" B1:E1")我该怎么办?
答案 0 :(得分:0)
您使用的SendKeys
非常不可靠:)为什么不找到文本框的名称和搜索按钮并直接与它进行交互,如下所示?
Sub Get_Data()
Dim ie As Object, objInputs As Object
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate "http://www.scramble.nl/military-database/usaf"
Do While ie.readystate <> 4: DoEvents: Loop
'~~> Get the ID of the textbox where you want to output
ie.Document.getElementById("serial").Value = "03-3114"
'~~> Here we try to identify the search button and click it
Set objInputs = ie.Document.getElementsByTagName("input")
For Each ele In objInputs
If ele.Name Like "sbm" Then
ele.Click
Exit For
End If
Next
End Sub
注意:要了解我如何获得名称serial
和sbm
,请参阅下图中给出的说明。
下面的代码搜索键盘输入值03-3114并获取表格中的数据。如果我想搜索已经在单元格A1中的值并从表格中刮取值,那么代码,类型,CN,单位&#34;在细胞范围内(&#34; B1:E1&#34;)我该怎么办?
直接将A1
的值替换为硬编码值
ie.Document.getElementById("serial").Value = Sheets("Sheet1").Range("A1").Value
要从表格中获取值,请在浏览器中右键单击表格中的元素,然后点击&#34;检查/检查元素(在Chrome中只是Inspect
)&#34;如下所示。
我可以给你代码,但我希望你自己做。如果您仍然卡住,请使用您尝试的代码更新问题,然后我们将从那里开始。