有没有办法获取最后一个目录以便我可以另存为?
Is there a way to Get Last Directory so I can Save As into?
我可以在我的桌面上创建一个新目录,我的问题是我不知道如何将多个文件保存到同一个子文件夹中,因为它有一个动态名称。
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" 但不知道如何将它放入我刚刚创建的新文件夹中。
MkDir Group & " - " & amount & " - " & Format(Date, "mm-dd-yyyy") & " - " & Format(Time, "hhmmss")
很难知道您刚刚创建的文件夹名称是什么,因为该指令负责太多事情。分开吧。
- Build/concatenate文件夹名称
- 用那个名字创建一个目录
如果我们分开工作,事情就会变得简单得多:
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")
检索当前用户配置文件目录的基本路径。
我可以在我的桌面上创建一个新目录,我的问题是我不知道如何将多个文件保存到同一个子文件夹中,因为它有一个动态名称。
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" 但不知道如何将它放入我刚刚创建的新文件夹中。
MkDir Group & " - " & amount & " - " & Format(Date, "mm-dd-yyyy") & " - " & Format(Time, "hhmmss")
很难知道您刚刚创建的文件夹名称是什么,因为该指令负责太多事情。分开吧。
- Build/concatenate文件夹名称
- 用那个名字创建一个目录
如果我们分开工作,事情就会变得简单得多:
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")
检索当前用户配置文件目录的基本路径。