运行 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 = ""
我正在尝试编写一个宏。该宏应该通过用户单击 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 = ""