Excel 让VBA仅在某些工作簿上工作

Excel 让VBA仅在某些工作簿上工作,excel,vba,Excel,Vba,我有下面的VBA代码,当我打开这个工作簿,但我在另一个工作簿上时,它会出现一个错误,说“下标超出范围”。我添加了一行指定工作簿,认为这会阻止它,但它似乎没有解决任何问题。需要进行哪些更改以避免错误 Option Explict Private Sub Worksheet_Calculate() Dim cht As Chart Dim wks As Worksheet Dim wb As Workbook Set wb = Workbooks("The wookbook I want it to

我有下面的VBA代码,当我打开这个工作簿,但我在另一个工作簿上时,它会出现一个错误,说“下标超出范围”。我添加了一行指定工作簿,认为这会阻止它,但它似乎没有解决任何问题。需要进行哪些更改以避免错误

Option Explict
Private Sub Worksheet_Calculate()
Dim cht As Chart
Dim wks As Worksheet
Dim wb As Workbook
Set wb = Workbooks("The wookbook I want it to work in")
Set wks = Sheets("The sheet I want it to work in")
Set cht = wks.ChartObjects("Chart 1").Chart...

我认为您希望宏与活动工作簿一起工作:

Set wb = ActiveWorkbook
Set wks = wb.Activesheet
for each cht in wks.ChartObjects
     ....
next cht

嗨,Patrick,这不是很有效,因为它不是活动工作簿,但通过设置wks=wb.Worksheets(“工作表”),它确实有效。