我怀疑这并不是那么复杂,但我没有多少运气为Google找到合适的术语...所以我来找专家!EXCEL VBA,更改单元格组和Worksheet_Change事件
所以我试图实现一个Worksheet_Change
事件。这非常简单,我基本上只想做以下事情:
如果C列中的值发生变化,并且D中的值(在该行中)具有特定的格式(NumberFormat =“$ 0.00”),则E列(在该行)是这两个值的乘积。简单。实际上,我只想要在E列中使用公式的VBA等价物。这个代码我使用:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 And Target.Value <> "" Then
If Target.Offset(0, 1).NumberFormat = "$ 0.00" Then
Target.Offset(0, 2).Value = Target.Value * Target.Offset(0, 1).Value
End If
End If
end sub
我的问题是雨后春笋般冒出来,当我尝试在多个值粘贴到c柱的多行。即我将一列数据(> 1行)复制到C中,并且出现类型不匹配错误。我会做出巨大的飞跃,它不能很好地处理这个问题,因为“目标”意图是一个单一的单元而不是一个组。我希望有一种简单的方法来处理这个问题,每次单元格上的单元格发生变化时都不会出现一些疯狂的循环。
在此先感谢!
大部分是正确的。但是,如果目标超出C列,这将导致可怕的事情发生。我认为你需要检查目标是只有列C,而你目前的状况并没有这样做。就像错误标签一样,还有'Resume Letscontinue'程序流程。够了upvote。 – Floris 2013-04-21 17:59:54
这就是我正在寻找的解决方案。我需要稍微调整一下,但是你为我自己解决了很多精神上的痛苦。谢谢! – Finch042 2013-04-21 18:03:34
@Floris:更新了您提到的场景中的代码 – 2013-04-21 18:03:56