Excel VBA运行时错误1004,我无法识别

时间:2015-06-27 12:18:02

标签: excel-vba excel-2013 vba excel

这是我的代码:

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”行时会弹出错误,所以我不确切地知道我做错了什么。

2 个答案:

答案 0 :(得分:1)

如果尚未首先激活包含已定义名称的工作表,则此代码将失败!

答案 1 :(得分:0)

错误在行

Range("VerticalLoop").Activate

错误可能是范围名称中的错字。你确定它不应该是&#34; Vertical_Loop&#34; (用下划线)?

另一方面,加里的学生是正确的,&#39; 1004&#39;尝试激活非活动工作表中的范围可能会触发错误。错误消息本身(而不仅仅是错误号)可以告诉您有关错误确切来源的更多信息。或者,您可以将该行分成两行,如下所示:

Dim VLoop As Range
Set VLoop = Range("VericalLoop")
VLoop.Activate

如果Set VLoop行抛出错误,则问题出在你的名字上。如果第二行抛出错误,那么问题在于什么是活动的。

作为一个额外的好处 - 一旦你调试这个错误,你现在有了一个有用的范围变量,允许你使用像VLoop.Rows.Count这样的表达式