这是我的代码:
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”行时会弹出错误,所以我不确切地知道我做错了什么。
答案 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这样的表达式