【问题标题】:Check if folder exists and save two sheets in there VBA Excel检查文件夹是否存在并在其中保存两张 VBA Excel
【发布时间】:2016-12-23 16:31:30
【问题描述】:

我需要 VBA 来检查名称为“Secret_information”的文件夹是否已经存在。如果文件夹已经存在,那么我需要将 PDF 和 Excel 从 Worksheet (1) 保存到这个具有特殊名称的文件夹中(参见下面的 VBA)。如果文件夹不存在,则在我打开的 Excel 文件所在的相同方向创建新文件夹。我制作了 VBA,但它不能正常工作。现在它不会只创建 pdf 的 xls 文件。此代码还将文件夹创建到桌面,我需要它在我打开的 Excel 文件所在的文件夹内创建文件夹。如何让它发挥作用?

Sub CommercialPart()
   Dim NewPath As String
   NewPath = Application.ThisWorkbook.Path & "" & "Secret_information"
   If Dir(NewPath, 63) = "" Then MkDir NewPath

        ActiveWorkbook.Sheets(1).Select
        ActiveSheet.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=NewPath & "\Secret_information_" & [Pricelist!E2] & "_" & "SC" & [Technical!I11] & "_" & Date & ".pdf", _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=No, _
        OpenAfterPublish:=False

        ActiveWorkbook.Sheets(1).Copy
        ActiveWorkbook.SaveAs NewPath & "\Secret_information_" & [Pricelist!E2] & "_" & "DD" & [Material!J8] & "_" & Date
        ActiveWorkbook.Close
End Sub

【问题讨论】:

    标签: excel vba directory


    【解决方案1】:
    1. 你在Application.ThisWorkbook.Path & "" & "Secret_information" 中缺少\,所以它应该是Application.ThisWorkbook.Path & "\" & "Secret_information"
    2. 您在此行末尾缺少扩展名,还要格式化日期,这样 ActiveWorkbook.SaveAs NewPath & "\Secret_information_" & [Pricelist!E2] & "_" & "DD" & [Material!J8] & "_" & Date 更易读,应该是ActiveWorkbook.SaveAs NewPath & "\Secret_information_" & [Pricelist!E2] & "_" & "DD" & [Material!J8] & "_" & Format(Date,"ddmmmyy" )& ".xls",xlExcel8

    将 xls 的文件格式添加为xlExcel8

    【讨论】:

    • 谢谢!效果很好。唯一的问题是这个命令:ThisWorkbook.Sheets(1).SaveAs NewPath & "\Secret_information_" & [Pricelist!E2] & "_" & "SC" & [Technical!I11] & "_" & Format(Date, "ddmmmyy") & ".xls", xlExcel8 使用原始的所有工作表创建新的 excel 文档。我只需要它来复制第一张纸。我还希望它在创建时从工作表中删除所有功能。
    • 这些问题不是原始帖子的一部分。必读:slash7.com/2006/12/22/vampires 可选读:stackoverflow.com/help/someone-answers
    • 实际上我已经问过“我需要将 PDF 和 Excel 从 Worksheet (1) 保存到这个具有特殊名称的文件夹中”。您会注意到有人提到我需要从第一个工作表创建 xls,而不是整个工作簿。无论如何感谢您的帮助,但如果您还没有阅读问题,则无需发送阅读链接...
    • 需要从 Worksheet (1) 中保存 PDF 和 Excel,代码 ActiveWorkbook.Sheets(1).Copy ActiveWorkbook.SaveAs NewPath... 有什么问题??它将使用第一张工作表创建一个新工作簿。现在在评论中你想出了这段敏捷的代码......@ 987654332@无处不在......因此链接。
    • 不要居高临下,要谦虚直接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-08
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 2021-03-29
    相关资源
    最近更新 更多