我有一张用于跟踪不同节省的电子表格,因此A列有一个名称,B有一个货币值。我希望能够在C列中输入一个值并让它更新旁边的B单元格,然后返回0.例如:
B1 =£50.00
我打字--1.1英镑
B1 =£38.00
C1 =£0.00
我以为会有一个内置功能,但我找不到一个。我想我需要写一个宏来做这件事。有人能告诉我这是怎么做的吗?
答案 0 :(得分:1)
您希望将以下代码添加到您正在处理的工作表中。右键单击工作表名称选项卡,然后选择查看代码并将其粘贴到其中。
Private Sub Worksheet_Change (ByVal Target as Range)
Dim FirstNum as Currency 'Long is for number currency should help keep format
Dim SecNum as Currency
If Target.Column = 3 Then 'Only Runs if Cell being changed is in column C, Might need to be Columns
FirstNum = Target.offset(-1,0).Value ' Value in Column B
SecNum = Target.Value ' Value being typed in C
Target.Offset(-1,0).Value = FirstNum - SecNum ' Makes Cell B equal to difference of previous value and value typed in C
MsgBox("Difference Found") ' Just to display code worked Remove when confirm code works
Target.Clear ' Clears Value you typed
End if
End Sub
答案 1 :(得分:0)
好像你想要在这里做一些与excel通常工作方式有点不同的事情。建议你使用更多行,然后你不需要宏。例如B1 = $ 50 C1 = - $ 12 那么B2 == IF(C1"“,B1 + C1,”“)。然后复制单元格B1以在下面的单元格中推导公式。您在C2中输入下一个值。这样做你需要的吗?