据我所知,Worksheet_Calculate
当工作表中任何单元格的值因公式重新计算而发生更改时调用。
有没有办法让我只需要在公式重新计算中特定单元格发生更改时调用函数
要在更改特定单元格时发生某些事情,您需要在文件中嵌入相关的选择更改事件Worksheet_Change(byval target as Range)
。当您的单元格发生更改时,我们可以重新计算工作表,如下所示:
Private Sub Worksheet_Change(byval target as range)
If target.address = Range("YourCell").Address Then Application.Calculate
End Sub
现在你要做的就是关闭其余时间的计算。如果您只想关闭单个工作表(而不是整个文件)上的计算,则需要在激活时关闭计算,并在停用时打开计算,例如
Private Sub Worksheet_Activate
Application.Calculation = xlCalculationManual
End Sub
Private Sub Worksheet_Deactivate
Application.Calculation = xlCalculationAutomatic
End Sub
当然,您重新计算的要求可能比上面的示例复杂得多。首先,您可以在相关工作表上打开文件,在这种情况下,您应该使用 Workbook_Open 事件来检测您的工作表,并相应地设置计算
那么您可能有几个需要某种计算的单元格。您想要关闭计算的原因可能是文件运行速度太慢。如果是这样,并且您正在识别所有输入单元格,则可以使用代码输入输出。一种方法是使用本指南输入公式在 Excel Visual Basic 中输入公式 http://www.excel4business.com/videos/excel-formulas-with-vba.php。然后,您可以将公式替换为计算值,例如Range("YourCell") = Range("YourCell").Value
...所以阻止工作表中的公式数量不断增长
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)