我刚刚搬到excel 2010,在单步执行代码时发现了令人惊讶的行为。单步执行代码时,通常会抛出错误Can't execute code in break mode
。
示例VBA
脚本如下:
Sub nm()
Sheets("Winput").Select
Range("A10").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
ActiveSheet.Previous.Select
end Sub
Sheets("Winput").Select
或Selection.Copy
不会抛出错误,但会抛出所有其他行。当我触发宏时代码运行正常。
提前致谢
答案 0 :(得分:1)
虽然这可能无法准确回答Can't execute...
错误,但如果以下代码引发相同的错误,请试试吗?我相信代码中的Select
用法会导致这种情况,因为我过去经历的情况大致相同......
Sub nmMod()
Set Start = Sheets("Winput").Range("A10")
EndCol = Start.End(xlToRight).Column
EndRow = Start.End(xlDown).Row
Start.Resize(EndRow, EndCol).Copy
Sheet2.Range("A1").PasteSpecial xlPasteAll 'mock action, change as necessary
End Sub
最好尽量避免任何选择。模拟Select
动作要慢得多,并引发其他问题(即,他们可以取消一个站立的copy
,搞乱行动,尤其是涉及形状等等)。如果这是导致错误本身的那个,那就不足为奇了。