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
使用VBA在另一张图纸中自动筛选_Vba_Excel - Fatal编程技术网

使用VBA在另一张图纸中自动筛选

使用VBA在另一张图纸中自动筛选,vba,excel,Vba,Excel,我打算过滤F列中以314开头的值,并清除其内容(整行)。工作簿有30000多行,我认为在筛选其他工作表(sA)时循环不是一个好的选择。我在下面记录了以下代码 Sheets("sA").Select Selection.AutoFilter ActiveSheet.Range("$A$1:$AF$30436").AutoFilter Field:=6, Criteria1:="=314*" _ , Operator:=xlAnd ActiveCell.Offset(-181, -2).Ra

我打算过滤F列中以314开头的值,并清除其内容(整行)。工作簿有30000多行,我认为在筛选其他工作表(sA)时循环不是一个好的选择。我在下面记录了以下代码

Sheets("sA").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$AF$30436").AutoFilter Field:=6, Criteria1:="=314*" _
    , Operator:=xlAnd
ActiveCell.Offset(-181, -2).Range("A1:AF30436").Select
ActiveCell.Activate
Selection.ClearContents
当我运行代码时,出现运行时错误1004。我想是因为ActiveCell,因为我在不同的工作表中运行了代码(sB,sA中过滤工作表的按钮)。可能的解决办法是什么?有什么建议吗?

这应该行得通

Sub filter()
   Dim ws As Worksheet
   Set ws = Sheets("sheet1")

   ws.Range("$A$1:$AF$30436").AutoFilter Field:=6, Criteria1:="=314*" _
    , Operator:=xlAnd

   Dim LR As Long
   LR = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
   ws.Range("A2:AF" & LR).SpecialCells(xlCellTypeVisible).ClearContents
   ws.AutoFilterMode = False
End Sub

它只过滤从314开始的值。我应该在底部添加ws.ClearContents吗?所以您希望看到更多记录?您的标准是字段6中的记录从314开始。。。抱歉,如果我错过了要点抱歉,我得到了一个问题-您想清除行还是删除行?我打算只筛选F列中以314开头的值的行。筛选F列中以314开头的值后,其所有行都应全部删除。现在我只想清除行。我最初的目标是过滤它们,删除整行,同时删除其中留下的空白。但是我可以清除这些行,然后使用你在另一篇文章中给我的代码。