2012-04-14 62 views
3

我有一个Excel文件(* .XLSM)与第一张VBA代码:Excel 2010中VBA中所有正在运行的打开的文件

Private Sub Worksheet_Calculate() 
ActiveSheet.ChartObjects("Podtlak").Chart.Axes(xlCategory, xlPrimary).MaximumScale = Range("AV79").Value 
End Sub 

其次Excel文件宏在第一Excel中改变单元格的值(它会自动重新计算),然后从第一个excel复制新结果的值并将其粘贴到第二个excel文件中。

问题是:当宏要第二次excel和粘贴值时,工作表被重新计算并且第一个excel中的代码正在调用,但是由于在第二个excel中找不到图表对象“Podtlak”而导致错误停止。

如何将worksheet_calculate()设置为仅针对写入的文件运行?

回答

3

尝试指定工作簿:

ThisWorkbook.ActiveSheet.ChartObjects("Podtlak").Chart.Axes(xlCategory, xlPrimary).MaximumScale = Range("AV79").Value

或指定的工作表和工作簿:因为你是明确规定的工作表和工作簿

ThisWorkbook.Worksheets("yourWorksheetName").ChartObjects("Podtlak").Chart.Axes(xlCategory, xlPrimary).MaximumScale = Range("AV79").Value

我喜欢第二个选项最好的,这个函数运行。无论何时使用ActiveSheetActiveWorkbook,您都依赖于您的预期工作表在代码运行时处于活动状态的事实。

相关问题