Excel VBA 运行-我无法识别的时间错误1004
Excel VBA run-time error 1004 which I can't identify
这是我的代码:
Sub VerticalLoop()
Dim i As Integer
Range("VerticalLoop").Activate
i = 1
Do While i <= Range("VerticalLoop").Rows.Count
ActiveCell.Value = i
ActiveCell.Offset(1, 0).Activate
i = i + 1
Loop
End Sub
出于某种原因,我不能 运行 这个。当我按F8的时候,到了"i=1"这一行就报错了,所以我也不知道到底哪里做错了。
错误在行
Range("VerticalLoop").Activate
错误可能是范围名称中的拼写错误。您确定它不应该是 "Vertical_Loop"(带下划线)吗?
另一方面,Gary 的学生是正确的,尝试激活非活动 sheet 中的范围可能会触发“1004”错误。错误消息本身(而不仅仅是错误编号)可以告诉您有关错误确切来源的更多信息。或者,您可以将该行分成两行,如下所示:
Dim VLoop As Range
Set VLoop = Range("VericalLoop")
VLoop.Activate
如果 Set VLoop 行抛出错误,则问题出在您的名字上。如果第二行抛出错误,那么问题出在活动的地方。
作为一个额外的好处——一旦你调试了这个错误,你现在就有了一个有用的范围变量,允许你使用像 VLoop.Rows.Count
这样的表达式
如果包含定义名称的 Sheet 没有先激活,此代码将失败!
这是我的代码:
Sub VerticalLoop()
Dim i As Integer
Range("VerticalLoop").Activate
i = 1
Do While i <= Range("VerticalLoop").Rows.Count
ActiveCell.Value = i
ActiveCell.Offset(1, 0).Activate
i = i + 1
Loop
End Sub
出于某种原因,我不能 运行 这个。当我按F8的时候,到了"i=1"这一行就报错了,所以我也不知道到底哪里做错了。
错误在行
Range("VerticalLoop").Activate
错误可能是范围名称中的拼写错误。您确定它不应该是 "Vertical_Loop"(带下划线)吗?
另一方面,Gary 的学生是正确的,尝试激活非活动 sheet 中的范围可能会触发“1004”错误。错误消息本身(而不仅仅是错误编号)可以告诉您有关错误确切来源的更多信息。或者,您可以将该行分成两行,如下所示:
Dim VLoop As Range
Set VLoop = Range("VericalLoop")
VLoop.Activate
如果 Set VLoop 行抛出错误,则问题出在您的名字上。如果第二行抛出错误,那么问题出在活动的地方。
作为一个额外的好处——一旦你调试了这个错误,你现在就有了一个有用的范围变量,允许你使用像 VLoop.Rows.Count
这样的表达式如果包含定义名称的 Sheet 没有先激活,此代码将失败!