Excel vba增加单元格值而不创build循环引用
我有一个电子表格,其中单元格D4:D93
是数据validation下拉列表,只有“ Yes
和“ No
作为选项。
我想弄清楚如何编码VBA,以便当在该范围内的单元格中select是时,则范围I4:I93
中的重合单元格中的值I4:I93
变为I4:I93
重合的单元格的总数I4:I93
和V4:V93
。
我一直在寻找几天,尝试了很多东西,我甚至不知道从哪里开始尝试。 一些尝试导致没有发生。 其他导致Excel冻结或崩溃,由于循环引用。 不知道这是否相关,但是D4:D93
和I4:I93
是表格的一部分,但是V4:V93
不是。
试试这个工作表事件macros:
Private Sub Worksheet_Change(ByVal Target As Range) Dim D As Range, rw As Long Set D = Range("D4:D93") If Intersect(Target, D) Is Nothing Then Exit Sub If LCase(Target.Value) <> "yes" Then Exit Sub rw = Target.Row Application.EnableEvents = False Range("I" & rw).Value = Range("I" & rw).Value + Range("V" & rw).Value Application.EnableEvents = True End Sub
因为它是工作表代码,所以安装和自动使用非常简单:
- 右键单击Excel窗口底部附近的选项卡名称
- select查看代码 – 这会popup一个VBE窗口
- 粘贴东西,closuresVBE窗口
如果您有任何疑问,请先在试用工作表上尝试。
如果您保存该工作簿,该macros将与它一起保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx
要删除macros:
- 调出上面的VBE窗口
- 清除代码
- closuresVBE窗口
要了解有关macros的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
要了解有关事件macros(工作表代码)的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/event.htm
macros必须启用这个工作!