Vba 对要在所有行上运行的代码的修改
我目前对excel电子表格上的一组数据进行了以下编码:Vba 对要在所有行上运行的代码的修改,vba,excel,Vba,Excel,我目前对excel电子表格上的一组数据进行了以下编码: Sub DemoMutual2() Dim URL As String Dim ieDoc As Object, dObj As Object Dim cel As Range URL = Range("G2").Value With CreateObject("InternetExplorer.Application") .Visible = False .Navigate URL
Sub DemoMutual2()
Dim URL As String
Dim ieDoc As Object, dObj As Object
Dim cel As Range
URL = Range("G2").Value
With CreateObject("InternetExplorer.Application")
.Visible = False
.Navigate URL
Do Until .ReadyState = 4: DoEvents: Loop
Set ieDoc = .Document
Set dObj = ieDoc.getElementsByClassName("_50f3")
[K2].Value = Split(ieDoc.getElementsByClassName("_50f3")(0).innerText, " ")(0)
For i = 0 To dObj.Length - 1
If InStr(1, dObj(i).getElementsByTagName("a")(0).innerText, "since") Then
[M2].Value = Trim(Split(dObj(i).getElementsByTagName("a")(0).innerText, "since")(1))
End If
Next
.Quit
End With
Set ieDoc = Nothing
Set dObj = Nothing
End Sub
目前,基于单元格G2中的URL,这只适用于一行。我想让这段代码为G列中的所有URL(G2、G3、G4等)运行,并在代码中指定的单元格(K2、K3、K4等和M2、M3、M4等)中返回所需的结果
所以在G2中搜索URL,并在K2和M2中返回结果
然后是G3,结果是K3和M3,依此类推
目前,这对一行非常有效,但我正在努力更改它,以便可以对多行执行此操作
非常感谢您的帮助。这是如何工作的
Sub DemoMutual2()
Dim URL As String
Dim ieDoc As Object, dObj As Object
Dim cel As Range
Dim lastRow As Long, i As Long, iRow As Long
lastRow = Cells(Rows.Count, 7).End(xlUp).Row
For iRow = 2 To lastRow
URL = Range("G" & iRow).Value
With CreateObject("InternetExplorer.Application")
.Visible = False
.Navigate URL
Do Until .ReadyState = 4: DoEvents: Loop
Set ieDoc = .Document
Set dObj = ieDoc.getElementsByClassName("_50f3")
Cells(iRow, 11).Value = Split(ieDoc.getElementsByClassName("_50f3")(0).innerText, " ")(0)
For i = 0 To dObj.Length - 1
If InStr(1, dObj(i).getElementsByTagName("a")(0).innerText, "since") Then
Cells(iRow, 13).Value = Trim(Split(dObj(i).getElementsByTagName("a")(0).innerText, "since")(1))
End If
Next i
.Quit
End With
Set ieDoc = Nothing
Set dObj = Nothing
Next iRow
End Sub
注意:为了提高性能,最好将
IE.Quit
和Set ieDoc=Nothing
行移动到整个循环之外,但如果行数不太多,这应该可以工作。是否有特定的行来运行它,或者希望它从G2
运行到G列的最后一个单元格?您好,BruceWayne,谢谢你的回复。我希望它一直运行到G列的最后一个单元格,因为工作表中的数据量会有所不同。太棒了,太完美了!谢谢布鲁斯韦恩,事实证明并不是所有的英雄都穿斗篷…或者他们。。。