【问题标题】:Creating Directory and saving the excel file via VBA通过 VBA 创建目录并保存 excel 文件
【发布时间】:2016-04-26 02:40:07
【问题描述】:

我正在尝试在 excel-VBA 中创建一个目录,然后将 xlsm 和 ,pdf 文件复制到该目录中。

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

代码如下。任何帮助深表感谢。这真让我抓狂。我所做的只是连接文件名并将其保存到 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

enter image description here

【问题讨论】:

  • 您保存为文件夹的路径不完整FileName2 = ("C:\TEMP\FileName\)

标签: vba excel


【解决方案1】:

FileName2 的格式应固定为在文件创建中正确连接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

【讨论】:

  • @MesaBoogie 不客气! :) 你能把我的答案标记为正确的吗?
【解决方案2】:

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 & "\")

【讨论】:

    猜你喜欢
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-02
    • 2020-06-03
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    相关资源
    最近更新 更多