使用VBA宏按变量过滤

时间:2015-03-05 19:59:12

标签: vba

我已经设置了一个模板,通过在我的模板中建立的变量上过滤所述电子表格,从另一个电子表格中提取数据。

我似乎无法让宏对我的变量进行适当的过滤(它会保持过滤,以便没有数据保持可见)。我提取的电子表格从A列到AM,有20830行。

我需要利用我的变量来过滤B列。列B当前被设置为VLOOKUP,我尝试粘贴值列但无效。任何关于如何实现这一点的见解将不胜感激!如果我需要更多说明,请告诉我。

下面我提供了我目前的VBA脚本(任何有关改进它的建议也将受到赞赏)。再次,非常感谢你的帮助!! (要过滤的变量是z,在脚本的早期部分中建立)

'Below will grab the Holdings data

Workbooks.Open Filename:= _
    "S:\Cashinvt\Audits\D&T" & v & "\PAM.allhold" & y & ".w.stat.xlsm", UpdateLinks:=0

    Sheets("allhold").Select
'Here is where I start questioning my code, filtering on variable z

Columns("B:B").Select

ActiveSheet.Range("$B$1:$B$22001").AutoFilter Field:=2, Criteria1:="z"

'Here I am trying to copy the newly filtered data and paste it into another spreadsheet

Range("B1:AM20831").Select

Selection.SpecialCells(xlCellTypeVisible).Select

Selection.Copy

Windows("Audit.Support.Template.xlsm").Activate

Sheets("Holdings").Select

Range("A1").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

Windows("S:\Cashinvt\Audits\D&T" & v & "\PAM.allhold" & y & ".w.stat.xlsm").Activate

Sheets("allhold").Select

Windows("S:\Cashinvt\Audits\D&T" & v & "\PAM.allhold" & y & ".w.stat.xlsm").Activate
ActiveWorkbook.Close SaveChanges:=False
Application.DisplayAlerts = True

Sheets("Cover Page").Select
Range("K1").Select

End Sub

1 个答案:

答案 0 :(得分:1)

ActiveSheet.Range("$B$1:$B$22001").AutoFilter Field:=2, Criteria1:=" & z & "

您只给出了一列范围,但说明Field:=2尝试将范围作为完整表格,即

ActiveSheet.Range("$A$1:$AM$22001").AutoFilter Field:=2, Criteria1:=CInt(z)

注意:我还包括了Dougs关于标准的评论