Vba 是否有办法获取最后一个目录,以便将其另存为?

Vba 是否有办法获取最后一个目录,以便将其另存为?,vba,directory,save-as,Vba,Directory,Save As,我可以在我的桌面上创建一个新目录,我的问题是我不知道如何将多个文件保存到同一个子文件夹中,因为它有一个动态名称 Option Explicit Sub Make_Folder_On_Desktop() Dim selectionsheet As Worksheet Dim Group As Variant Dim amount As Long Dim BU As Long Dim BUname As Variant Dim sFilename As Variant Set selectio

我可以在我的桌面上创建一个新目录,我的问题是我不知道如何将多个文件保存到同一个子文件夹中,因为它有一个动态名称

Option Explicit

Sub Make_Folder_On_Desktop()

Dim selectionsheet As Worksheet
Dim Group As Variant
Dim amount As Long
Dim BU As Long
Dim BUname As Variant
Dim sFilename As Variant

Set selectionsheet = Sheets("Project Selection")
Group = selectionsheet.Range("A19").Value
amount = selectionsheet.Range("B19").Value
BU = selectionsheet.Range("B6").Value
BUname = selectionsheet.Range("C6").Value
sFilename = BU & " - " & BUname

MkDir Group & " - " & amount & " - " & Format(Date, "mm-dd-yyyy") & " - " 
& Format(Time, "hhmmss")
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & sFilename

End Sub
最后一行是我遇到问题的地方。我有“ThisWorkbook.Path”,但不知道如何将其放入刚刚创建的新文件夹中

很难知道您刚刚创建的文件夹名是什么,因为该指令负责太多的事情。把它分开

  • 生成/连接文件夹名称
  • 按该名称创建一个目录
如果我们分开工作,事情就会简单得多:

Dim path As String
path = Group & " - " & amount & " - " & Format(Date, "mm-dd-yyyy") & " - " & Format(Time, "hhmmss")

MkDir path
现在,我们在…
path
变量中有了路径,它可以随时用于您可能想使用它做的任何事情:

ActiveWorkbook.SaveAs path & "\" & sFilename
作为旁注,如果改为使用日期格式
yyyy-mm-dd
,则符合ISO标准(即,世界各地的日期都是明确的),并且文件夹可以按名称排序


请注意,该过程的名称有误导性:它不关心文件夹在哪里,也没有说明它在
%USERPROFILE%\Desktop
下。使用
Environ$(“USERPROFILE”)
检索当前用户配置文件目录的基本路径。

关于
Environ$
的好消息。太棒了!谢谢你的帮助!!
ActiveWorkbook.SaveAs path & "\" & sFilename