如何在一张纸上运行宏而不会对您打开的其他电子表格产生影响

时间:2013-10-31 17:26:20

标签: excel vba

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

2 个答案:

答案 0 :(得分:4)

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

option explicit

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

End Sub

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

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

答案 1 :(得分:0)

您需要明确说明您正在使用的工作簿/工作表...您的宏正在流入其他工作表,因为它正在那个时刻有焦点的任何工作上运行。使用像thisWorkbook或Worksheet(“myname”)这样的语句来明确地引用应该编辑哪个表/书。