运行 宏(Private Sub)选中复选框时
Run macro (Private Sub) when checkbox is checked
当活动单元格被 selected 时,我有以下宏 select 整行。这是完美的工作!但是,我只想让这个宏在复选框为 "checked"
时工作
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
取决于您拥有的复选框的名称。但是,如果它是 CheckBox1
,这应该起作用
If CheckBox1.Value = True Then
'do code'
Else: End If
您可以通过名称调用复选框,然后 select 值 属性
CheckBoxName.Value
这将 return 如果选中则为真,如果未选中则为假。所以你可以打电话
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
这应该有效。
您应该可以右键单击复选框并选择分配宏。
http://blog.contextures.com/archives/2014/01/16/click-a-check-box-to-run-a-macro/
谢谢你的努力和时间,但我找到了解决方案:
如果ActiveSheet.Shapes("Check Box 1").ControlFormat.Value = 1 那么
不确定这有多相关,但我注意到您可以直接将宏分配给复选框...?
当活动单元格被 selected 时,我有以下宏 select 整行。这是完美的工作!但是,我只想让这个宏在复选框为 "checked"
时工作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
取决于您拥有的复选框的名称。但是,如果它是 CheckBox1
,这应该起作用If CheckBox1.Value = True Then
'do code'
Else: End If
您可以通过名称调用复选框,然后 select 值 属性
CheckBoxName.Value
这将 return 如果选中则为真,如果未选中则为假。所以你可以打电话
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
这应该有效。
您应该可以右键单击复选框并选择分配宏。
http://blog.contextures.com/archives/2014/01/16/click-a-check-box-to-run-a-macro/
谢谢你的努力和时间,但我找到了解决方案:
如果ActiveSheet.Shapes("Check Box 1").ControlFormat.Value = 1 那么
不确定这有多相关,但我注意到您可以直接将宏分配给复选框...?