Excel单元格值更新宏
我有一个跟踪不同储蓄的电子表格,所以a列有一个名称,B列有一个货币值。我希望能够在C列中输入一个值,并让它更新旁边的B单元格,然后返回0。例如: B1=50.00英镑 I型-12.00英镑C1 B1=38.00英镑 C1=0.00英镑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“
我以为会有一个内置函数,但我找不到。我想我需要写一个宏来实现这一点。有人能告诉我怎么做吗 您似乎想在这里做一些与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现在可以工作,并且很容易更改我需要的任何行/列。谢谢