Dev*_*ate 3 excel vba excel-vba
当我只打开这个特定的Excel文件时,我有以下子程序,就像我想要的那样
Private Sub Worksheet_Calculate()
If Sheets("Dashboard").Range("Z11").Value > 0 Then
Sheets("Dashboard").Shapes("tileOverdueTasks").Fill.ForeColor.RGB = RGB(185, 0, 0)
Else
Sheets("Dashboard").Shapes("tileOverdueTasks").Fill.ForeColor.RGB = RGB(0, 185, 0)
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
问题是,如果我在打开另一个文档时打开另一个文档,我会收到以下错误:
调试显示问题所在.
我是VBA的新手,但我尝试ActiveSheet在所有表格引用之前添加,但没有减轻错误.如何确保仅在脚本所在的文档中的"仪表板"表上运行?
这是因为如果你写Sheets它是相同的ActiveWorkbook.Sheets.因此,您需要添加类似的工作簿限定符Workbooks("MyBook").Sheets("SheetName").
或者你可以使用ThisWorkbook.Sheets("SheetName").然后将使用运行VBA代码的工作簿的工作表集合.