我正在构建一个Excel工作表,我希望在随机数输入的同一单元格中有一个背景公式。
这是今天的价值观。
A1: 100<Br>
A2: 200<BR>
A3: 300
C1: 1,1
我希望A1
,A2
和A3
与您输入值后输入的C1
相乘。我希望将来更改C1
中的值,column A
中的所有值都会相应更新。
如果我输入100,我希望在上面的示例中将其更新为110,但如果我稍后将C1
更改为1,2
,则会自动变为120.
在B:
“=A1*$C$1
”之类的其他专栏中,这当然非常容易。但我真的只想在本文档中使用一个单元格。
没有VBA
这是不可能的?如果是,我该怎么做VBA
?提前谢谢。
答案 0 :(得分:1)
在OP的澄清后编辑
Private Sub Worksheet_Change(ByVal Target As Range)
Dim values As Variant
Dim rngToChange As Range
Dim targetRow As Long
Select Case True
Case Not Intersect(Target, Range("A1:A3")) Is Nothing
Set rngToChange = Intersect(Target, Range("A1:A3"))
If Target.Count = 1 Then targetRow = Target.Row
Case Target.Address = "$C$1"
Set rngToChange = Range("A1:A3")
Case Else
Exit Sub
End Select
With Range("C1")
If .Comment Is Nothing Then .AddComment(Join(Application.Transpose(Range("A1:A3").Value), " ")).Visible = False
values = Split(.Comment.Text, " ")
If targetRow <> 0 Then
values(targetRow - 1) = Target.Value
.ClearComments
.AddComment(Join(values, " ")).Visible = False
End If
End With
Dim cell As Range
On Error GoTo goodexit
Application.EnableEvents = False
For Each cell In rngToChange
cell.Value = values(cell.Row - 1) * Range("c1").Value
Next
goodexit:
Application.EnableEvents = True
End Sub