【发布时间】:2014-06-20 16:07:16
【问题描述】:
我需要在 excel 中制作一个 VBA 脚本,当一个单元格的值至少比另一个单元格大或小 10% 时,它会为 2 个单元格着色
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = aprx_Lns Then
If aprx_Lns > aprx2_Lns * 0.1 Then
aprx_Lns.Interior.Color = Hex(FFFF00)
aprx2_Lns.Interior.Color = Hex(FFFF00)
ElseIf aprx_Lns < aprx2_Lns * 0.1 Then
aprx_Lns.Interior.Color = Hex(FFFF00)
aprx2_Lns.Interior.Color = Hex(FFFF00)
End If
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Change2(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = aprx2_Lns Then
If aprx_Lns > aprx2_Lns * 0.1 Then
aprx_Lns.Interior.Color = Hex(FFFF00)
aprx2_Lns.Interior.Color = Hex(FFFF00)
ElseIf aprx_Lns < aprx2_Lns * 0.1 Then
aprx_Lns.Interior.Color = Hex(FFFF00)
aprx2_Lns.Interior.Color = Hex(FFFF00)
End If
End If
Application.EnableEvents = True
End Sub
我做错了什么?两个单元格都没有将颜色更改为选定的颜色,即使在我使值使 if 语句为真之后也是如此。
我对 VBA 几乎一无所知,所以任何解释都会很棒。谢谢!
【问题讨论】:
-
Worksheet_Change2不是有效的事件处理程序。 -
将您的两个逻辑组合到
Worksheet_Change事件处理程序中。您需要这方面的帮助吗? -
我愿意。我对 VBA 几乎一无所知
-
好的。原始的
Worksheet_Change事件是否如您所愿? -
不,这两个事件都不起作用。