VBA - Combobox - Range类的AutoFilter方法失败

时间:2016-02-11 16:24:33

标签: excel vba excel-vba combobox

我的组合框(ActiveX)下面的代码根据值过滤表格中的数据。

代码执行正常并过滤表格,然后崩溃与范围类的自动过滤方法失败错误

我真的不明白为什么?

组合框是一个ActiveX组合框并链接到单元格F5,列表范围是一个动态范围,根据表格中的内容而变化

代码:

Sub ComboBox1_Change()

If Range("F5").Value = "" Then
ActiveSheet.ListObjects("Table3").Range.AutoFilter

Else

With ActiveSheet

.ListObjects("Table3").Range.AutoFilter Field:=3, _
 Criteria1:=Range("F5").Value

End With
End If
End Sub

2 个答案:

答案 0 :(得分:0)

Sub ComboBox1_Change()
with activesheet
    If .Range("F5").Value = "" Then
        .ListObjects("Table3").Range.AutoFilter

    Else
        .ListObjects("Table3").Range.AutoFilter Field:=3, _
 Criteria1:=Range("F5").Value
    end if  

End With
End Sub

答案 1 :(得分:0)

想出一个解决方案:

不确定究竟是什么导致了它,但我只是在下面的错误恢复中输入:

Sub ComboBox1_Change()

With ActiveSheet

If Range("F5").Value = "" Then
ActiveSheet.ListObjects("Table3").Range.AutoFilter

 Else
 On Error Resume Next
 .ListObjects("Table3").Range.AutoFilter Field:=3, _
 Criteria1:=Range("F5").Value

End If
End With

End Sub