我正在运行一个宏,该宏在使用范围引用的行之后突然在运行中抛出错误“ 1004”,即使该引用在该点之前仍能正常工作。请参见下面的代码段示例。
Option Explicit
Dim ws1 as Worksheet
Set ws1 = ThisWorkbook.Worksheets("Overview")
Dim PasteRange as Range
Set PasteRange = ws1.Range("AJ4:AM4") 'This is actually a variable range, but this is not important for this question
Dim CheckCell as Range
Dim ColCntr as Long
Dim ReviewCntr as Long
Dim LoopCntr as Long
ReviewCntr = ws1.Range("AA1").Value 'This cell only contains numerical values
For Each CheckCell in PasteRange
If LoopCntr = 0 Then
'A lot of code happens here, referencing CheckCell, all working
'flawlessly. Untill...
ColCntr = CheckCell.Column + ReviewCntr 'Final good working line
ElseIf LoopCntr <> 0 Then
CheckCell.Offset(0, BackSet2).Interior.ColorIndex = 3 '<-- error occurs
'Some More Code
End If
LoopCntr = LoopCntr + 1
Next CheckCell
突然在行上发生对象定义的错误
CheckCell.Offset(0, BackSet2).Interior.ColorIndex = 3
,而且我不知道为什么或如何突然发生此错误,尤其是由于该行上方的引用仍然有效。通过Debug DropDown菜单编译项目不会产生任何错误。在逐步浏览代码时,将鼠标悬停在Checkcell
上时,它是有效的,并在弹出窗口中提供值和不存在的值。
代码到达该特定行后,弹出窗口显示为:
应用程序定义或对象定义的错误。
将鼠标悬停在该行的BackSet2
上将读取一个数值,这意味着偏移量正常工作。将鼠标悬停在此行之前的CheckCell
个引用上仍会在弹出窗口中产生相关信息。
有人可以告诉我这里是什么错误吗?