Excel单元格值更新宏

Excel单元格值更新宏,excel,vba,Excel,Vba,我有一个跟踪不同储蓄的电子表格,所以a列有一个名称,B列有一个货币值。我希望能够在C列中输入一个值,并让它更新旁边的B单元格,然后返回0。例如: B1=50.00英镑 I型-12.00英镑C1 B1=38.00英镑 C1=0.00英镑 我以为会有一个内置函数,但我找不到。我想我需要写一个宏来实现这一点。有人能告诉我怎么做吗 您似乎想在这里做一些与excel正常工作方式略有不同的事情。建议使用更多行,这样就不需要宏了。e、 g.B1=$50 C1=-$12 那么B2==如果(C1“”,B1+C1“

我有一个跟踪不同储蓄的电子表格,所以a列有一个名称,B列有一个货币值。我希望能够在C列中输入一个值,并让它更新旁边的B单元格,然后返回0。例如:

B1=50.00英镑

I型-12.00英镑C1

B1=38.00英镑

C1=0.00英镑


我以为会有一个内置函数,但我找不到。我想我需要写一个宏来实现这一点。有人能告诉我怎么做吗

您似乎想在这里做一些与excel正常工作方式略有不同的事情。建议使用更多行,这样就不需要宏了。e、 g.B1=$50 C1=-$12
那么B2==如果(C1“”,B1+C1“”)。然后将单元格B1向下复制,以在下面的单元格中选择公式。在C2中输入下一个值。这能满足你的需要吗

您需要将以下代码添加到工作表中。在“图纸名称”选项卡上单击鼠标右键,然后选择“查看代码”并将其粘贴到中

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 
    Application.EnableEvents = False ' Stop macro changes calling function repeatedly
    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 
    Application.EnableEvents = True ' Re-enable the macro call
End if 

End Sub   

不完全是。下面的列将包含另一个我不想更改的值。我认为它需要一个VB宏或Target.Value=“0”而不是Target.Clear以返回0.00而不是blankI get“Runtime error 1004”应用程序定义的错误或对象定义的错误它在FirstNum=Target.offset(-1,0)的行上崩溃列BDim中的.Value'值被设置为导致错误的范围。应为值类型变量。即:String、Long、IntergerIt现在可以工作,并且很容易更改我需要的任何行/列。谢谢