我有一个B
列,其中包含许多行记录,默认情况下为空。现在我希望如果有人在记录中输入任何整数,可以在单元格B1
上说,它应该计算为
integer value of cell * (-20)
-20修饰符存储在let Z1
中。键入B1,B12 ... Bn的任何值都应按照与上述相同的方式计算。我怎么能这样做?
修改
预期结果
答案 0 :(得分:3)
您可以使用Change
event。将其粘贴到您要在其上使用的工作表的Sheet module中:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B:B")) Is Nothing Then
Target = Target.Value * Range("Z1")
End If
End Sub
Intersect
方法测试以确保更改的单元格位于列B
中。 Target
是值已更改的单元格。
答案 1 :(得分:3)
是的,请使用Change
事件,但您需要考虑以下几点:
此版本考虑了这些因素
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Dim cl As Range
Application.EnableEvents = False
Set rng = Intersect(Me.Columns(2), Target)
If Not rng Is Nothing Then
For Each cl In rng.Cells
If Not IsEmpty(cl) Then
If Not cl.HasFormula Then
cl.Value = cl.Value * Me.Range("Z1")
End If
End If
Next
End If
Application.EnableEvents = True
End Sub