我有一个由按钮触发的宏,然后为一个certrain范围着色。所以喜欢:
Sub colourRange()
#Colour range
end sub
这一切都有效但事情是我必须按一个按钮才能工作。实际上我正在寻找的是某种if / else语句,当你在单元格中填入某个值时会触发宏。
anbybody能告诉我是否有办法通过在单元格中输入某个值来触发宏?
答案 0 :(得分:2)
您的第一个(自然)选择应该是条件格式。如果它对您的特定情况不起作用,您可以拦截Worksheet_Change
事件:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, myRange) Is Nothing And myRange.Value = ACertainValue Then
Call colourRange
End If
End Sub
将上述处理程序放在要监视的Worksheet的代码模块中。
答案 1 :(得分:1)
这
当您在单元格中填写某个值时,会触发宏
我会说你想要对任何单元进行更改,只要它已输入某个值
然后我会在相关的工作表代码窗格中编写以下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.count>1 And Target.Value = "your certain value" Then colourRange
End Sub
如果您希望每个工作表都能实现这一点,请在ThisWorkbook代码窗格中对其进行编码,如下所示:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Count > 1 And Target.Value = "your certain value" Then colourRange
End Sub