基本上我在一个不断运行的工作簿中运行一个宏。当我打开另一个工作簿时,宏会中断,并且它会超出范围。如何在特定工作表上锁定宏?
答案 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”)这样的语句来明确地引用应该编辑哪个表/书。