Excel vba增加单元格值而不创build循环引用

我有一个电子表格,其中单元格D4:D93数据validation下拉列表,只有“ Yes和“ No作为选项。

我想弄清楚如何编码VBA,以便当在该范围内的单元格中select是时,则范围I4:I93中的重合单元格中的值I4:I93变为I4:I93重合的单元格的总数I4:I93V4:V93

我一直在寻找几天,尝试了很多东西,我甚至不知道从哪里开始尝试。 一些尝试导致没有发生。 其他导致Excel冻结或崩溃,由于循环引用。 不知道这是否相关,但是D4:D93I4: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 

因为它是工作表代码,所以安装和自动使用非常简单:

  1. 右键单击Excel窗口底部附近的选项卡名称
  2. select查看代码 – 这会popup一个VBE窗口
  3. 粘贴东西,closuresVBE窗口

如果您有任何疑问,请先在试用工作表上尝试。

如果您保存该工作簿,该macros将与它一起保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx

要删除macros:

  1. 调出上面的VBE窗口
  2. 清除代码
  3. 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必须启用这个工作!