vba根据相同条件过滤多个工作表

时间:2018-07-02 14:12:04

标签: excel vba excel-vba

希望这是一个简单的问题,但对于像我这样的新手来说不是。。。 15张纸,第3-11页有相同格式的数据,我要用相同的编号过滤,然后删除其他数据并保存。我(非常业余)的尝试是:

Sub Filterdata()
'Tab 3 - Vehicle info - filter by column A
Sheets("Vehicle Info").Select
ActiveSheet.Range("$A$1:$Q$10000").AutoFilter Field:=1, Criteria1:="<>1", _
    Operator:=xlAnd
Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Application.CutCopyMode = False
Selection.ClearContents
ActiveSheet.Range("$A$1:$Q$10000").AutoFilter Field:=1, Criteria1:="<>"
     'delete blanks
ActiveSheet.Range("$A$1:$S$10000").AutoFilter Field:=1
Columns("A:A").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.EntireRow.Delete
Range("A2").Select
'
'Tab 4 - Gifts - filter by column A
Sheets("Gifts to third parties (£50+)").Select
ActiveSheet.Range("$A$1:$Q$10000").AutoFilter Field:=1, Criteria1:="<>1", _
Operator:=xlAnd
Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlToRight)).Select
Application.CutCopyMode = False
Selection.ClearContents
ActiveSheet.Range("$A$1:$Q$50000").AutoFilter Field:=1, Criteria1:="<>"
     'delete blanks
ActiveSheet.Range("$A$1:$S$50000").AutoFilter Field:=1
Columns("A:A").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.EntireRow.Delete
Range("A2").Select

还有10多个类似的段落,每个段落都与同一工作簿中的另一个工作表有关-所有这些都需要在同一列(A)中使用相同的数字(在这种情况下为1)进行过滤。 我可以用更短的代码替换这个庞大的代码吗? (前两个工作表也需要过滤,但要按B列过滤,但是因为只有两段,我可以接受),谢谢。

谢谢您的帮助,该代码在第一个选项卡上似乎可以正常运行,但是可以持续很长时间,并且在中断时,“ .Rows(x).Delete shift:= xlShiftUp”代码已被高亮显示。请找到随附的截图,该截图显示了文档的结构,红色的两页在B列中包含公司编号,其他工作表在A列中包含公司编号。 某些工作表可能没有任何数据,例如公司3,那么我需要删除所有其他不相关的数据(对于其他公司),并将选项卡留空enter image description here

1 个答案:

答案 0 :(得分:0)

这应该比以前的版本稍好一些。让我知道您是否还有其他问题

docker-machine create -d generic --generic-ip-address ip --generic-ssh-key ~/.ssh/key --generic-ssh-user username --generic-ssh-port 22 machine1