如何在一张工作表中运行宏而不影响您打开的其他电子表格

goo*_*kid 0 excel vba

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

Rya*_*n G 5

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

option explicit

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

End Sub
Run Code Online (Sandbox Code Playgroud)

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

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