[英]I need help inputting a column from excel in VBA with html macro.
我選擇了2個單元,並將它們命名為“ perch”和“ stats”。 使用我在單元格中輸入的內容,我能夠進行搜索並從html代碼(為了安全起見更改)中檢索所需的數據。 但是我的問題是要輸入整個列,而不僅僅是單個單元格。 並在單個列中產生多個結果。 另外,輸入的數量將定期更改〜300,因此我無法指定特定范圍。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = Range("perch").Row And _
Target.Column = Range("perch").Column Then
Dim IE As New InternetExplorer
'IE.Visible = True
IE.navigate "http://"google/not_real_link"
Do
DoEvents
Loop Until IE.readyState = READYSTATE_COMPLETE
Dim Doc As HTMLDocument
Set Doc = IE.document
Dim sTD As String
sTD = Trim(Doc.getElementsByTagName("td")(33).innerText)
IE.Quit
Range("stats").Value = sTD
End If
End Sub
你通常會看到Worksheet_SelectionChange
instaed使用的事件Worksheet_Change
。
以下是使用這些事件的一些技巧:
關閉EnableEvents。 如果不這樣做,您可能會重新觸發該事件並陷入無限循環
使用“ Intersect
方法來測試您的范圍和“目標”是否相交。
您應該使用Target.Cells.Count來查看是否有多個細胞受到影響。
私有子Worksheet_SelectionChange(ByVal目標作為范圍)如果不相交(Target,Range(“ perch”))不存在,則Application.EnableEvents = False
Application.EnableEvents = True
End If
結束子
我不太確定您要如何處理多個值。
創建將值添加到列表末尾的函數通常會有所幫助。
Sub AddStatusRow(value As Variant)
Const StatColumn = 5
Dim lastRow As Long
lastRow = Range(Cells(1, StatColumn), Cells(Rows.count, StatColumn)).End(xlUp).Row + 1
Cells(lastRow, StatColumn) = value
End Sub
您可能要考慮遍歷表的行而不是Doc.getElementsByTagName("td")(33).innerText
。
您可以從下面的URL中找到許多您想做的很好的例子。
http://www.tushar-mehta.com/publish_train/xl_vba_cases/vba_web_pages_services/index.htm
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.