2015-03-13 98 views
0

我在這個文件中有一個宏「PrepareSheets_and_FillData」:「C:\ 2013-2014 \ C1 \ C1 Macro.xlsm」。代碼打開文件,運行宏,保存文件,然後運行下一個

我需要在標有「1NB」,「1SB」,「2NB」,「2SB」等文件上運行此宏,然後我需要將文件保存爲「1NB_Results」,「1SB_Results」等。需要打開文件,從其他位置運行宏,然後根據約定保存文件。

有沒有辦法自動做到這一點?

這是我使用的簡單解決方案。

 Application.Workbooks.Open ("C\2013-2014\C1\1WB.xlsx") 
Sheets("Data").Select 
Range("A2").Select 
Application.Run "'C1 Macro.xlsm'!PrepareSheets_and_FillData" 
Range("C16").Select 
Application.CutCopyMode = False 
ActiveWorkbook.SaveAs Filename:= _ 
    "C:\2013-2014\C1\1WB Results.xlsx", FileFormat:= _ 
    xlOpenXMLWorkbook, CreateBackup:=False 
     ActiveWindow.Close  

然後重複每個文件。

+1

是的,有。你有什麼嘗試? – brettdj 2015-03-13 14:25:35

回答

1

你非常接近。有一兩件事你可以做的就是把所有的文件名中的數組,然後只是遍歷每個文件的陣列

file_names = Array("1NB", "1SB", "2NB", "2SB") 

For Each indiv_file In file_names 
    Application.Workbooks.Open ("C\2013-2014\C1\" & indiv_file & ".xlsx") 
    Sheets("Data").Select 
    Range("A2").Select 
    Application.Run "'C1 Macro.xlsm'!PrepareSheets_and_FillData" 
    Range("C16").Select 
    Application.CutCopyMode = False 
    ActiveWorkbook.SaveAs Filename:= _ 
     "C:\2013-2014\C1\" & indiv_file & " Results.xlsx", FileFormat:= _ 
     xlOpenXMLWorkbook, CreateBackup:=False 
    ActiveWindow.Close  

Next 

代碼是未經測試中,可能有語法錯誤

-1

如何處理一個主宏,然後Call執行這個魔術並重復處理需要處理的文件。

相關問題