我想遍歷給定檔案夾中的所有 excel 檔案(特別是 *.xlsm),對于每個檔案,從模板創建/打開一個新作業簿,對其進行一些修改(主要是資料副本),然后保存創建的基于模板的作業簿具有新名稱的檔案基于我正在回圈的檔案夾中的原始檔案,而不會觸發對話框。
我找到了如何遍歷檔案夾中的檔案,這要歸功于如何遍歷檔案夾中所有作業簿中的所有作業表,問題在于重命名程序。創建的基于模板的檔案會自動接收模板的名稱。
If Fnum > 0 Then
For Fnum = LBound(MyFiles) To UBound(MyFiles)
Set mybook = Nothing
On Error Resume Next
Set mybook = Workbooks.Open(MyPath & MyFiles(Fnum))
Set tworkbook = Workbooks.Add("C:\template\location\template name.xlsm")
tworkbook.SaveAs Filename:="C:\looped over\folder\location\" & "Mod - " & mybook.Name & ".xlsm"
由于名稱是只讀的,我必須使用 saveAs,系統會提示我選擇 Yes 或 No 來確定我是否希望保存的檔案運行宏。我不明白,模板已經是 .xlsm 并且我被提示選擇一個名稱(它也默認為模板的名稱)
uj5u.com熱心網友回復:
指定檔案格式作為另存為功能的一部分使用 FileFormat:=xlOpenXMLWorkbookMacroEnabled
If Fnum > 0 Then
For Fnum = LBound(MyFiles) To UBound(MyFiles)
Set mybook = Nothing
On Error Resume Next
Set mybook = Workbooks.Open(MyPath & MyFiles(Fnum))
Set tworkbook = Workbooks.Add("C:\template\location\template name.xlsm")
Application.DisplayAlerts = False
tworkbook.SaveAs Filename:="C:\looped over\folder\location\" & "Mod - " & mybook.Name & ".xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Application.DisplayAlerts = True
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/345266.html
