使用 VBA 将文件复制到动态文件夹

问题描述 投票:0回答:1

我的问题之前的背景: 我们有一张 Excel 表格,我们每天早上在会议时打开并修改。然后,我们将其保存为 pdf 文件,并在 Excel 旁边的标题中注明当天的名称。 所有这一切我都可以使用这个自动生成命令按钮:

Sub SaveActiveWorkbookAsPDF()

    Dim saveLocation As String

    saveLocation = ThisWorkbook.Path & "" & "Daily file_w" & Format(Date, "ww") & _
                     "_" & Format(Date, "dddd")

    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
                                       Filename:=saveLocation

End Sub

这就是我遇到的问题:然后我们将此 pdf 文件复制到不同的文件夹(对于其他部门),我也想将其自动化到按钮。 我的问题是,我们每周都会在不同的文件夹中保存这些 Excel,标题为“w02”等等,并带有数字。替代位置与每周的方式相同,但文件夹标题的格式类似于“2502”(- 如 2025 年第二周)。这些文件夹是预先创建并命名的,所以我对此没有回旋余地。

文件名中包含一个自动的周数,并且在工作表中还有一个单元格指示周数。我可以使用这些以便 VBA 找到文件夹吗? 谢谢!

编辑: 原始路径(Excel 也在其中)I:-05\Data\Daily�5\w2(基于本周的数字)另一个路径(到我们复制 pdf 的位置)I:-80-PUBLIC\Daily Report �5�2(同样,最后一个数字基于本周) (对不起,火车失事的帖子,试图整理我的想法哈哈)

excel vba
1个回答
0
投票

也许像这样:

Sub SaveActiveWorkbookAsPDF()

    Dim saveLocation As String, saveName As String, weekFolder As String

    saveLocation = ThisWorkbook.Path & "\"
    saveName = "Daily file_w" & Format(Date, "ww") & "_" & Format(Date, "dddd")

    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
                     Filename:=saveLocation & saveName
                                       
    weekFolder = "I:\04-80-PUBLIC\Daily Report\" & Year(Date) & _
                 "\" & Format(Date, "yy") & Format(Format(Date, "ww"), "00")
    
    FileCopy saveLocation & saveName, weekFolder & saveName
    
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.