excel 2010 VBA在步进时抛出“无法在中断模式下执行代码”

时间:2013-10-27 22:29:00

标签: excel vba excel-vba

我刚刚搬到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").SelectSelection.Copy不会抛出错误,但会抛出所有其他行。当我触发宏时代码运行正常。

提前致谢

1 个答案:

答案 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,搞乱行动,尤其是涉及形状等等)。如果这是导致错误本身的那个,那就不足为奇了。