我有以下代码来过滤Excel工作表
With Sheets("Inventory on Hand").Range("A1:F1")
.AutoFilter
Call .AutoFilter(1, UserForm1.TextBox13.Text)
Call .AutoFilter(3, UserForm1.TextBox15.Text)
Call .AutoFilter(4, UserForm1.TextBox14.Text)
Call .AutoFilter(5, UserForm1.TextBox16.Text)
End With
然而,问题是,如果我将TextBox13
留空,则第1列将被过滤为空白行,这不是我想要的。
当且仅当相应的文本框具有值?
时,如何将过滤器应用于该列?如果TextBox13
为空,则根本不应过滤第1列。
答案 0 :(得分:1)
您可以尝试:
If Len(UserForm1.TextBox13.Text) <> 0 Then Call .AutoFilter(1, UserForm1.TextBox13.Text)
或者
If Not IsEmpty(UserForm1.TextBox13) Then Call .AutoFilter(1, UserForm1.Textbox13.Text)
或者
If UserForm1.TextBox13.Value <> "" Then Call .AutoFilter(1, UserForm1.TextBox13.Text)
无法测试它,所以我留给你。
答案 1 :(得分:1)
您可以确保如果未选择任何内容,则删除第一列中的过滤器(如果之前已过滤)。这看起来像是:
If If UserForm1.TextBox13.Value <> "" Then
Call .AutoFilter(1, UserForm1.TextBox13.Text)
Else
.AutoFilter Field:=1
End If