Excel 更新更改而不取消选择/重新选择复选框

Excel 更新更改而不取消选择/重新选择复选框,excel,checkbox,combobox,auto-update,vba,Excel,Checkbox,Combobox,Auto Update,Vba,当1)复选框为TRUE,2)ComboBox1中的值更改(在本例中是从打开更改为关闭,反之亦然)时,我试图让显示的复制和粘贴范围自动更新。 代码按预期工作,但在我更改为打开或关闭后,我必须取消选择并重新选择复选框,这就是我试图克服的问题 当复选框为FALSE时,将执行一组不同的执行(在代码中注释掉)。所以我想在复选框为TRUE时进行更改 我曾尝试实现一个while循环,但最终陷入了循环中 代码如下: Private Sub Checkbox1_Change() If Checkbox1.Valu

当1)复选框为TRUE,2)ComboBox1中的值更改(在本例中是从打开更改为关闭,反之亦然)时,我试图让显示的复制和粘贴范围自动更新。 代码按预期工作,但在我更改为打开或关闭后,我必须取消选择并重新选择复选框,这就是我试图克服的问题

当复选框为FALSE时,将执行一组不同的执行(在代码中注释掉)。所以我想在复选框为TRUE时进行更改

我曾尝试实现一个while循环,但最终陷入了循环中

代码如下:

Private Sub Checkbox1_Change()
If Checkbox1.Value = True Then
    ComboBox1.List = Array("Closed", "Open")
    With ComboBox1.Value = "Open"
        Worksheets("FSM Search Data").Range("$A$1:$AD$2000").AutoFilter Field:=4, Criteria1:=Worksheets("FSM Search").ComboBox1.Value
        Worksheets("FSM Search Data").Range("B2:AD2000").SpecialCells(xlCellTypeVisible).Copy
        AutoFilterMode = False
        Worksheets("FSM Search").Activate
        Worksheets("FSM Search").Range("B4").PasteSpecial xlPasteValues
        Range("B1:AD5").Columns.AutoFit
    End With

    With ComboBox1.Value = "Closed"
        Worksheets("FSM Search Data").Range("$A$1:$AD$2000").AutoFilter Field:=4, Criteria1:=Worksheets("FSM Search").ComboBox1.Value
        Worksheets("FSM Search Data").Range("B2:AD2000").SpecialCells(xlCellTypeVisible).Copy
        AutoFilterMode = False
        Worksheets("FSM Search").Activate
        Worksheets("FSM Search").Range("B4").PasteSpecial xlPasteValues
        Range("B1:AD5").Columns.AutoFit
    End With
End If

'If Checkbox1.Value = False Then
'With Worksheets("FSM Data")
'ComboBox1.List = .Range("B2:B" & .Range("B" & .Rows.Count).End(xlUp).Row).Value
'Worksheets("FSM Search").Activate
'Range("C4").Value = ComboBox1.Value
'Range("B1:AD5").Columns.AutoFit
'End With 'End If End Sub

谢谢你的帮助

已更改
专用子复选框1\u Change()


谢谢Scott

将代码放入
组合框
更改事件中,然后评估复选框是否为
真/假
。谢谢你的关注,我完全忽略了这一点。问题解决了,参考注释掉的代码,现在当我取消选中复选框时,新列表不会出现。你知道为什么吗?我想你需要两个事件的代码。可能最好编写一个或多个单独的过程,并在事件代码中调用它们,为复选框传递
TRUE/FALSE
,为组合框传递
Open/Closed
Private Sub ComboBox1_Change()