Excel单元格值更新宏

时间:2014-08-24 09:45:42

标签: excel excel-vba vba

我有一张用于跟踪不同节省的电子表格,因此A列有一个名称,B有一个货币值。我希望能够在C列中输入一个值并让它更新旁边的B单元格,然后返回0.例如:

B1 =£50.00

我打字--1.1英镑

B1 =£38.00

C1 =£0.00

我以为会有一个内置功能,但我找不到一个。我想我需要写一个宏来做这件事。有人能告诉我这是怎么做的吗?

2 个答案:

答案 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中输入下一个值。这样做你需要的吗?