Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动态过滤器一直隐藏我的行-Excel VBA_Excel_Vba - Fatal编程技术网

动态过滤器一直隐藏我的行-Excel VBA

动态过滤器一直隐藏我的行-Excel VBA,excel,vba,Excel,Vba,当我在文本框中键入时,我的行就被隐藏了,并且在清除文本框后不会返回。我在另一张表中的前一张表上使用了相同的代码,它工作得完美无缺。我相信错误源于我将整个表复制粘贴到另一张表中,并调整新表的代码。我检查了链接单元格并确保更改了表名。我错过了什么 Private Sub TextBox1_Change() Application.ScreenUpdating = False ActiveSheet.ListObjects("Customers").Range.AutoFilt

当我在文本框中键入时,我的行就被隐藏了,并且在清除文本框后不会返回。我在另一张表中的前一张表上使用了相同的代码,它工作得完美无缺。我相信错误源于我将整个表复制粘贴到另一张表中,并调整新表的代码。我检查了链接单元格并确保更改了表名。我错过了什么

Private Sub TextBox1_Change()

Application.ScreenUpdating = False

ActiveSheet.ListObjects("Customers").Range.AutoFilter Field:=1, Criteria1:=[C2] & "*", Operator:=xlFilterValues

Application.ScreenUpdating = True

End Sub

请试试这个密码。它将使用
DblClick
事件。否则,
Change
事件将由您输入的任何字符触发。现在,在文本框中设置过滤条件后,您应该在其内部双击:

Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean
 Dim Tb As ListObject

 Set Tb = ActiveSheet.ListObjects("Customers")
 Application.ScreenUpdating = False
  If TextBox1.Text = "" Then
    Tb.AutoFilter.ShowAllData
  Else
    Tb.Range.AutoFilter field:=1, Criteria1:=CStr([C2]), Operator:=xlFilterValues
  End If
 Application.ScreenUpdating = True
End Sub

非常感谢。我输入了Tb.AutoFilter.ShowAllData,它没有隐藏我的行,但仍然没有显示我的搜索结果。@Nancy我使用了你的代码。我知道它是有效的。。。但您确定这些条件不应连接到文本框值吗?@Nancy是“Customers”表第一列中的“C2”值吗?您建议如何操作?我尝试了TextBox1.Value,但是我遇到了一个错误,我不太熟悉VBA语法。谢谢你的建议!我对堆栈溢出相当陌生。