运行 Do While Not 时出现时间错误 1004 ActiveCell.Offest(-1, RowCount).Value = ""

Run Time Error 1004 on Do While Not ActiveCell.Offest(-1, RowCount).Value = ""

我正在尝试编写一个宏。该宏应该通过用户单击 D 列中的第一个空单元格来工作。然后它应该获取 C 列左侧的跟踪号。导航到该网站。 Return 将交付日期放入第一个单击的单元格中,然后基本上向下移动一行并执行相同的操作,而无需再次单击下一行。循环这个过程,直到你遇到 C 列中的第一个空单元格。这不能每次都从一个特定的单元格开始,因为它是一个持续的传播 sheet,每周都会添加,这将开始接近底部。例如,本周我开始的地方是单元格 D2343。这不是完成的代码,但任何建议都会有所帮助。我对编码相当陌生,对 excel VBA 也非常陌生,所以请多多包涵。可能有比使用 activecell 更好的方法来解决这个问题,但我不确定如何。这个

Public Sub Tracking()
Dim IE As Object
Dim ReturnValue As String
Dim ProUrl As String
Dim RowCount As Integer

Set IE = CreateObject("InternetExplorer.application")

RowCount = 0

'THIS LINE RETURN THE ERROR
Do While Not ActiveCell.Offset(-1, RowCount).Value = ""

ProUrl = "https://www.rrts.com/Tools/Tracking/Pages/MultipleResults.aspx?PROS=" & ActiveCell.Offset(-1, RowCount).Value

With IE
   .Visible = False
   .Navigate ProUrl
    Do Until Not IE.Busy And IE.readyState = 4: DoEvents: Loop
End With

ReturnValue = Trim(IE.document.getElementsByTagName("Span")(16).innerText)
ActiveCell.Offset(, RowCount).Value = ReturnValue

RowCount = RowCount + 1

Loop

IE.Quit
Set IE = Nothing

End Sub

如有任何帮助,我们将不胜感激。 Whosebug 是一个巨大的资源。谢谢。

我认为错误可能出在您的 Offset 方法中。第一个参数应该是行偏移量,第二个参数应该是列偏移量。看来你可能倒退了。

尝试将其更改为:

Do While Not ActiveCell.Offset(RowCount, -1).Value = ""