3

最初のシートに VBA コードを含む 1 つの Excel ファイル (*.xlsm) があります。

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

そして、最初のExcelのセルの値を変更しているマクロを含む2番目のExcelファイル(自動的に再計算されます)、最初のExcelから新しい結果の値をコピーして、2番目のExcelファイルに貼り付けます。

問題: マクロが 2 番目の Excel に移動して値を貼り付けると、ワークシートが再計算され、最初の Excel のコードが呼び出されますが、2 番目の Excel でチャート オブジェクト "Podtlak" が見つからないため、エラーで停止します。

作成されたファイルに対してのみ実行するようにworksheet_calculate()を設定するにはどうすればよいですか?

4

1 に答える 1

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

この関数が実行されるワークシートとワークブックを明確に指定しているので、2番目のオプションが最も気に入っています。ActiveSheetまたはを使用するときはいつでもActiveWorkbook、コードの実行時に目的のワークシートがアクティブであるという事実に依存しています。

于 2012-04-14T09:57:09.107 に答える