【发布时间】:2018-01-25 01:24:11
【问题描述】:
我不擅长 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 链接和公式更新时发生变化。该事件似乎仅在我手动更改范围内的值时更新,这不是我在工作表完成后会做的事情。
当此范围内的单元格通过公式重新计算和/或更改时,是否有一种方法可以调用此宏,而无需人触摸工作表。
【问题讨论】: