我需要什么:每当单元格 C3 返回与当前不同的值(基于其公式,而不是基于手动键入不同的值)时,我们将要触发的宏称为“MacroRuns”。
我花了一整天的时间阅读并尝试了关于这个主题的谷歌搜索的前两页上的每个“解决方案”。到目前为止,似乎没有什么对我有用。请帮忙!!!我将非常感激!
Example:
我现在已经尝试过此操作,但在运行几次后它会损坏我的文件。
Private Sub Worksheet_Calculate()
If Range("E3") <> Range("C3").Value Then
Range("E3") = Range("B3").Value
MsgBox "Successful"
End If
End Sub
Module1、Sheet1(计算)、ThisWorkbook(打开)
强调
- 当工作簿打开时,值来自
C3
被公众宣读
多变的TargetValue
via TargetStart
.
- 当值在
C3
正在计算中,TargetCalc
已激活
通过计算事件。如果当前值C3
不同于TargetValue
, MacroRuns
被触发并且TargetValue
更新为中的值C3
.
The Code
Module1
Option Explicit
Public TargetValue As Variant
Private Const cTarget As String = "C3"
Sub TargetCalc(ws as Worksheet)
If ws.Range(cTarget) <> TargetValue Then
MacroRuns
TargetValue = ws.Range(cTarget).Value
End If
End Sub
Sub TargetStart()
TargetValue = Sheet1.Range(cTarget).Value
End Sub
Sub MacroRuns()
MsgBox "MacroRuns"
End Sub
本练习册
Option Explicit
Private Sub Workbook_Open()
TargetStart
End Sub
Sheet1
Option Explicit
Private Sub Worksheet_Calculate()
TargetCalc Me
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)