0

基本上我在一个不断运行的工作簿中运行一个宏。当我打开另一个工作簿时,宏会中断并且超出范围。如何锁定该特定工作表上的宏?

4

2 回答 2

4

使用 excel vba 时的经验法则,不要使用 ActiveWorkbook/ActiveSheet/Selection 变量。确保这些都明确说明,例如。

option explicit

sub myRoutine()
    Dim ws as Worksheet
    Set ws = ThisWorkbook.Sheets('SheetName')

End Sub

ActiveSheet 和 selection 将使用当前正在使用的工作表以及当前选中的单元格。

我猜你录制了一个宏,在这种情况下按 Alt+F11 并转到你当前的工作簿并在项目资源管理器中找到模块。您可能需要修改代码以不引用活动实例。

于 2013-10-31T17:30:58.650 回答
0

您需要明确说明您正在使用的工作簿/工作表......您的宏正在渗入其他工作表,因为它正在运行当时关注的任何内容。使用 thisWorkbook 或 Worksheet("myname") 之类的语句来明确引用应编辑的工作表/书籍。

于 2013-10-31T17:29:00.853 回答