我下面有一些代码循环遍历L列的每一行,并在Col L中存在超链接的每一行上运行下面的脚本,该代码很好用,它可以很好地打开和抓取数据,但是我想根据正在处理的行将值添加到其他列。
Public Sub CallRangeL_Urls()
Dim i As Range
For Each i In Sheet1.Range("L4:L200")
ImportData i.Value
Next i
End Sub
Public Sub ImportData(ByVal urlToOpen As String)
...
With CreateObject("msxml2.xmlhttp")
.Open "GET", urlToOpen False 'Cell that contains hyperlink
.send
HTML_Content.body.innerHTML = .responseText
End With
' Code here to scrape
'Add Value to Sheet1
Sheets(1).Range("E4").Value = rng1.Offset(0, 1)
Else
Sheets(1).Range("E4").Value = 0
End If
End Sub
例如,如果要从位于L4中的URL抓取数据,我希望它将对应的数据转储到E4中,如其显示Sheets(1).Range("E4").Value = rng1.Offset(0, 1)
如何获取它的代码以查找它的当前行或每次递增它?我已经尝试了以下方法,但不幸的是它无法正常工作。
rowNumber = Sheets(1).Range("L4:L150").Row
Sheets(1).Cells(rowNumber, "E").Value = rng1.Offset(0, 1)
非常感谢您的帮助。谢谢
答案 0 :(得分:1)
现在,它将始终将数据放入E4,但是如果将范围本身传递给ImportData
,则可以使用offset在E列中找到右行:
在for循环中,调用ImportData i
而不是ImportData i.Value
将子标题更改为:
Public Sub ImportData(ByVal urlRange as Range)
使用urlToOpen
代替urlRange.value
如果要将值放入E列而不是E4列,请使用urlRange.Offset(0,-7)
,因为E比L列少7列。