2012-04-14 93 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,您都依賴於您的預期工作表在代碼運行時處於活動狀態的事實。

相關問題