1

我刚刚搬到 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").SelectorSelection.Copy上引发,而是在所有其他行上引发。当我触发宏时,代码运行良好。

提前致谢

4

1 回答 1

2

虽然这可能无法完全回答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,弄乱动作,尤其是涉及形状的动作等)。如果这是导致错误本身的原因,那就不足为奇了。

于 2013-10-28T01:40:28.550 回答