我在Excel中的宏很远,并且可以真正使用一些指导。需要运行一个看起来像这样的简单宏:
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
现在棘手的部分是如何在我需要它时调用这个宏。我希望rng1
成为我设置范围内的单元格,然后我需要一个事件来触发调用。
问题是使用Private Sub Worksheet_Change(ByVal Target As Range)
似乎不起作用,因为完成的工作表只会在RTD链接和公式更新时更改。当我手动更改范围中的值时,该事件似乎只会更新,这不是我在工作表完成时所做的事情。
当此范围内的单元格通过公式重新计算和/或更改时,是否有办法调用此宏,而无需人触摸工作表。
答案 0 :(得分:1)
尝试使用Private Sub Worksheet_Calculate()
。
您可能需要创建一些来触发或不触发函数内的宏。