2016-08-19 89 views
0

我想提高我目前的VBA宏它可以通过消除具有零金额列所有行从一个地方到另一个出口数据G.有人能告诉我VBA脚本我需要添加什么在我目前的脚本中做到这一点?VBA宏删除线与零号身材

这是现在我的脚本:

Sub ExportFees() 
' 
' ExportFees Macro 
' Mgt Fee Import 
' 

    Dim Filename As String 
    Filename = Worksheets("Tradar Import").Range("Y8") 
    Columns("A:W").Select 
    Selection.Copy 
    Workbooks.Add 
    Cells.Select 
    ActiveSheet.Paste 
    Application.CutCopyMode = False 
    ActiveWorkbook.SaveAs Filename:= _ 
     "\\BET-SYD-SVR01\Betashares\Ops\Tradar Import\FEE001\" & Filename, FileFormat _ 
     :=xlCSV, CreateBackup:=False 
    ActiveWorkbook.Save 
    ActiveWindow.Close 
End Sub 

Original Data Source

回答

0

如果你设置了一系列参考的数据,那么你可以使用Range.AutoFilter对数据进行筛选和Range.Copy到过滤后的数据复制到目的地范围。

Sub ExportFees() 
' 
' ExportFees Macro 
' Mgt Fee Import 
' 

    Dim Filename As String 

    Dim DataRange As Range 
    Set DataRange = Range("A1").CurrentRegion 
    DataRange.AutoFilter Field:=7, Criteria1:="<>0", Operator:=xlAnd 
    DataRange.AutoFilter 

    Filename = Worksheets("Tradar Import").Range("Y8") 
    Workbooks.Add 

    DataRange.Copy Destination:=Range("A1") 

    ActiveWorkbook.SaveAs Filename:= _ 
     "\\BET-SYD-SVR01\Betashares\Ops\Tradar Import\FEE001\" & Filename, FileFormat _ 
     :=xlCSV, CreateBackup:=False 
    ActiveWorkbook.Save 
    ActiveWindow.Close 
End Sub 
+0

谢谢托马斯。有用。 我注意到自动过滤器保​​留了它的过滤格式。在创建文件后,是否有一些类型的代码要添加到宏中以撤销自动筛选器? – Mike

+0

我更新了我的答案。您只需使用不带参数的'DataRange.AutoFilter'。 – 2016-08-19 04:29:01