【问题标题】:Call a macro based on cell value changes but formula stays the same根据单元格值更改调用宏,但公式保持不变
【发布时间】:2019-02-04 15:54:09
【问题描述】:

当单元格 B3 更改时,我需要调用宏,但是 B3 是 RTD 链接,因此当值更改时,公式仍然相同,并且 Excel 无法识别更改。当值发生变化但公式没有变化时,如何让宏运行?

我尝试使用简单的 Range("B3").Value ,但这给了我一个运行时错误“424”。然后我尝试创建一个范围对象来解决这个问题,但仍然收到另一个错误消息。

Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("B3")) Is Nothing Then
    Call Copy_Values
    End If
End Sub

我对 VBA 比较陌生,所以我知道我可能会遗漏一些明显的东西,感谢您提供的任何帮助

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    您需要 Worksheet_Calculate 而不是 Worksheet_Change。使用静态 var 来“记住”上一个计算周期的值。

    Sub Worksheet_Calculate()
    
        static beeThree as variant
    
        If Range("B3").value2 <> beeThree Then
            application.enableevents = false
            application.calculation = xlcalculationmanual
            Copy_Values
            beeThree = Range("B3").value2
            application.calculation = xlcalculationautomatic
            application.enableevents = true
        End If
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-15
      • 2022-09-29
      • 1970-01-01
      • 2017-11-06
      • 1970-01-01
      • 2015-06-12
      • 1970-01-01
      • 2017-05-17
      相关资源
      最近更新 更多