创build目录并通过VBA保存excel文件

我试图在Excel VBA中创build一个目录,然后将xlsm和pdf文件复制到此目录中。

我可以创build目录,但我似乎无法将文件保存到此目录中?

下面的代码。 任何帮助深表感谢。 这真让我抓狂。 我所做的只是连接文件名,并将其保存到c:\ temp文件夹中,但是我想将其保存到c:\ temp中的一个子文件夹中

Sub Macro2() ' ' Macro2 Macro ' Dim FileName As String Dim FileName2 As String 'FileName3 As String FileName = Sheet1.TextBox1.Text FileName2 = ("C:\TEMP\" & FileName) 'CheckDir As String MsgBox (FileName2) MkDir (FileName2) ChDir (FileName2) ActiveWorkbook.SaveAs FileName:=FileName2 & FileName & "2xlsm.xlsm" _ , FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _ FileName2 & "FileName" & "_2xlsm.pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ True End Sub 

在这里input图像说明

FileName2的格式应该固定,以在文件创build中正确连接FileName 。 而且, SaveAsExportAsFixedFormatFileName参数应该是相同的,假设您希望将XLSM和PDF文件保存在一个目录中。

请参阅下面的修改后的代码:

 Sub Macro2() ' ' Macro2 Macro ' Dim FileName As String Dim FileName2 As String FileName = Sheet1.TextBox1.Text FileName2 = "C:\TEMP\" & FileName & "\" MsgBox (FileName2) MkDir (FileName2) ChDir (FileName2) ActiveWorkbook.SaveAs FileName:=FileName2 & FileName & "2xlsm.xlsm", _ FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _ FileName2 & FileName & "_2xlsm.pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ True End Sub 

您在FileName2 & "\" & FileName, _缺less& "\" & (反斜杠) FileName2 & "\" & FileName, _

请参阅完整代码

 Option Explicit Sub Macro2() ' ' Macro2 Macro ' Dim FileName As String Dim FileName2 As String FileName = Sheet1.TextBox1.Text FileName2 = ("C:\TEMP\" & FileName) MsgBox (FileName2) MkDir (FileName2) ActiveWorkbook.SaveAs FileName:= _ FileName2 & "\" & FileName, _ FileFormat:=xlOpenXMLWorkbookMacroEnabled, _ CreateBackup:=False ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _ FileName2 & "\" & "FileName", _ Quality:=xlQualityStandard, IncludeDocProperties:=True, _ IgnorePrintAreas:=False, OpenAfterPublish:=True End Sub 

或者干脆这样做

FileName2 = ("C:\TEMP\" & FileName & "\")