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 没有先激活,此代码将失败!