答案 0 :(得分:1)
您可以使用Worksheet_Change
事件来触发宏。因此,您必须创建sub并从Worksheet_Change
事件中调用它。 Sub将与Planning Button
相同。检查以下代码
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("I1")) Is Nothing Then
If Target = "WAAR" Then
Call MyMacro
End If
End If
End Sub
Sub MyMacro()
MsgBox "Value is entered to I1 cell"
End Sub
答案 1 :(得分:1)
否,不可能自动“按下按钮”。
但是,我认为“按钮”后面的代码是这样的:
Sub CommandButton_Click(Target as Range)
...
End Sub
您可以做的是创建一个启动此过程的宏,但是您遇到了问题,有人何时启动该宏?在那里,您自己(或多或少)提供了答案:当单元格“ I1”达到某个值时。但是,这是不可能的:当单元格达到某个值时,您不能声明要启动的宏。
但是:您可以在任何单元格发生更改时启动宏,它的工作方式如下:
这都是什么意思?
在VBA项目编辑器(左窗格)中,您需要选择工作表,在源代码编辑器中,您需要进入“工作表”和“更改”,像这样,您有一个在每次您的工作表中发生了一些价值变化。
代码本身如下所示:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 And Target.Column = 9 And Target.Value = True Then
CommandButton_Click (...)
End If
End Sub
这意味着将始终启动宏,但是您只希望在以下情况下发生某些事情:
Target.Row = 1 (which correspond with cell "I1")
Target.Column = 9 (which corresponds with cell "I1")
Target.Value = True (which corresponds with value `WAAR`, I assume here that `WAAR` is just
the Dutch translation for the boolean `True` and not some string value)
答案 2 :(得分:0)
根据按钮的类型,您需要调用按钮连接的Sub
或触发button_click
事件过程。
假设您有一个“表单”按钮正在调用Sub
测试:
Public Sub Test()
MsgBox "Forms Button clicked"
End Sub
在您的Worksheet_Change()
过程中,您的代码应如下所示:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 And Target.Column = 9 And Target.Value = True Then
Test
End If
End Sub
如果您有一个ActiveX按钮,您的代码将如下所示:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 And Target.Column = 9 And Target.Value = True Then
Sheet1.CommandButton1.Value = True ' This triggers the click event
End If
End Sub