【问题标题】:Run macro (Private Sub) when checkbox is checked选中复选框时运行宏(私人子)
【发布时间】:2016-09-21 08:39:02
【问题描述】:

选择活动单元格时,我有以下宏来选择整个行。这是完美的工作!但是,我只是想让这个宏在“选中”复选框时工作

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Column <> 1 Then
    Exit Sub
Else
    Application.ScreenUpdating = False
    Cells.Borders.LineStyle = xlLineStyleNone
    Rows(Target.Row).BorderAround Weight:=xlMedium, ColorIndex:=3
    Application.ScreenUpdating = True

End If

End Sub

【问题讨论】:

  • 捕获复选框事件:Private Sub Option1Checkbox_Click()
  • 我想我可能误解了你的问题。您希望宏在选中复选框时触发,还是在选中复选框时触发?
  • 如果复选框被选中 - 宏有效
  • 在这种情况下,9Deuce 和 New2VBA 已经给你正确的答案了。

标签: excel vba checkbox


【解决方案1】:

取决于您拥有的复选框的名称。但是,如果它是 CheckBox1,这应该是可行的

If CheckBox1.Value = True Then
'do code'
Else: End If

【讨论】:

    【解决方案2】:

    您可以通过名称调用复选框,然后选择 Value 属性

    CheckBoxName.Value
    

    如果选中则返回 true,如果未选中则返回 false。所以你可以打电话

    If CheckBoxName.Value
        If Target.Column <> 1 Then
            Exit Sub
        Else
            Application.ScreenUpdating = False
            Cells.Borders.LineStyle = xlLineStyleNone
            Rows(Target.Row).BorderAround Weight:=xlMedium, ColorIndex:=3
            Application.ScreenUpdating = True
    
       End If
    End If
    

    这应该可行。

    【讨论】:

      【解决方案3】:

      您应该能够右键单击复选框并选择分配宏。

      http://blog.contextures.com/archives/2014/01/16/click-a-check-box-to-run-a-macro/

      【讨论】:

        【解决方案4】:

        感谢您的努力和时间,但我找到了解决方案:

        如果 ActiveSheet.Shapes("复选框 1").ControlFormat.Value = 1 那么

        【讨论】:

          【解决方案5】:

          不确定这有多相关,但我注意到您可以直接将宏分配给复选框...?

          【讨论】:

            猜你喜欢
            • 2019-03-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-08-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多