在重新计算特定公式时,在Excel中运行VBAmacros

我在Excel中的macros很远,可以真正使用一些指导。 需要运行一个简单的macros,如下所示:

Public Sub CopyReplaceValue(rng1 As String) Dim str1 As String Dim str2 As String Dim str3 As String Dim rng2 As Integer On Error GoTo LetsContinue str1 = "N" ''this is your FRZ column str2 = Range(rng1).Row ''Row number of updated cell str3 = str1 & str2 ''FRZ cell to be changed rng2 = Range(str3).Value If Sgn(Range(rng1)) <> Sgn(rng2) Then Range(str3).Value = 0 ElseIf Abs(Range(rng1).Value) <= Abs(rng2) Then Range(str3).Value = Range(rng1).Value End If LetsContinue: Exit Sub End Sub 

现在棘手的部分是如何调用这个macros,当我需要它。 我希望rng1能够成为我设定范围内的一个小区,然后我需要一个事件来触发这个呼叫。

问题是使用Private Sub Worksheet_Change(ByVal Target As Range)似乎不起作用,因为完成的工作表只会在RTD链接和公式更新时更改。 该事件似乎只是手动更改范围内的值时更新,这不是我在工作表完成时所做的事情。

有没有办法调用这个macros,当这个范围内的一个单元格重新计算和/或通过公式的变化,没有人触摸表。

尝试使用Private Sub Worksheet_Calculate()

您可能需要创build一些触发function内的macros。