2016-08-19 143 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