gpt4 book ai didi

vba - Excel 2010 VBA 在所有打开的文件中运行

转载 作者:行者123 更新时间:2023-12-02 18:45:46 25 4
gpt4 key购买 nike

我有一个 Excel 文件 (*.xlsm),第一张纸上包含 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() 设置为仅针对写入的文件运行?

最佳答案

尝试指定工作簿:

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 时,您都依赖这样一个事实:您想要的工作表在代码运行时处于事件状态。

关于vba - Excel 2010 VBA 在所有打开的文件中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10152398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com