Excel 在“我的文档”中创建文件夹,并将工作簿保存到该文件夹

Excel 在“我的文档”中创建文件夹,并将工作簿保存到该文件夹,excel,windows-7,excel-2007,vba,Excel,Windows 7,Excel 2007,Vba,我创建了一个Excel加载项,用于导入数据的工作簿。我需要添加执行以下操作的代码: 检查文件夹是否存在C:\Users\\My Documents\Extract 文件\ 如果文件夹不存在,请创建该文件夹 以扩展名为.xlsx的文件名将当前日期和时间(现在)保存到此文件夹中 示例:C:\Users\jdoe\My Documents\Extract Files\Extract-01-15-2016 15:15.xlsx 我发现了这一点,但需要知道如何将我的上述标准纳入此代码: ActiveW

我创建了一个Excel加载项,用于导入数据的工作簿。我需要添加执行以下操作的代码:

  • 检查文件夹是否存在C:\Users\\My Documents\Extract 文件\
  • 如果文件夹不存在,请创建该文件夹
  • 以扩展名为.xlsx的文件名将当前日期和时间(现在)保存到此文件夹中
示例:C:\Users\jdoe\My Documents\Extract Files\Extract-01-15-2016 15:15.xlsx

我发现了这一点,但需要知道如何将我的上述标准纳入此代码:

ActiveWorkbook.SaveAs Filename:=myFileName, FileFormat:=xlOpenXMLWorkbook
    Sub Ex()
If InStr(LCase$(ActiveWorkbook.name), "extract") > 0 Then
    Exit Sub
Else
     Dim MyDir As String, fn As String
     MyDir = CreateObject("WScript.Shell").SpecialFolders("MyDocuments") & "\Extract Files" ' change this to valid path
     If Len(Dir(MyDir, vbDirectory)) = 0 Then MkDir MyDir
     fn = MyDir & "\Extract - " & Format(Now, "mm-dd-yyyy hh_mm")
     ActiveWorkbook.SaveAs Filename:=fn, FileFormat:=xlOpenXMLWorkbook
End If
End Sub
如果VBA不存在,我对VBA了解不够,无法创建文件夹(如果您可以使用VBA执行此操作)。我已经找过了,但找不到任何有用的东西。这里需要一些指导。谢谢。

试试看:

Sub dural()
   Dim folder As String, myFileName As String
   folder = "C:\TestFolder\Extract Files"

   On Error Resume Next
      MkDir folder
   On Error GoTo 0

   myFileName = folder & "\" & "Extract - " & Format(Now, "mm-dd-yyyy hh mm") & ".xlsx"
   ActiveWorkbook.SaveAs Filename:=myFileName, FileFormat:=xlOpenXMLWorkbook
End Sub
更改文件夹名称后………..如果收到警告,请单击“是”按钮

如果文件夹不存在,宏将创建该文件夹。

请尝试以下代码:

ActiveWorkbook.SaveAs Filename:=myFileName, FileFormat:=xlOpenXMLWorkbook
    Sub Ex()
If InStr(LCase$(ActiveWorkbook.name), "extract") > 0 Then
    Exit Sub
Else
     Dim MyDir As String, fn As String
     MyDir = CreateObject("WScript.Shell").SpecialFolders("MyDocuments") & "\Extract Files" ' change this to valid path
     If Len(Dir(MyDir, vbDirectory)) = 0 Then MkDir MyDir
     fn = MyDir & "\Extract - " & Format(Now, "mm-dd-yyyy hh_mm")
     ActiveWorkbook.SaveAs Filename:=fn, FileFormat:=xlOpenXMLWorkbook
End If
End Sub

我们不能在文件名中使用

我刚刚注意到完整路径不在我的OP中。我需要补充的是,不同的用户将从他们的桌面运行此文件,并且需要将此文件保存在各自的“我的文档”文件夹中。在我的OP中应该是:C:\Users\username\my Documents\Extract Files\。“提取文件”是我需要创建的文件夹,如果它不存在。谢谢。我当时只考虑格式,而不是文件名的一部分。抢手货但是,我如何让这些信息进入我的文档(见我对OP的评论)。@IronMan,见编辑。如果您想要用户数据文件夹,您可以使用
Environ(“USERPROFILE”)
@IronMan,您可以使用:
Environ(“USERPROFILE”)&“\My Documents\Extract Files”
。但是在答案中使用类似的
WScript.Shell
会更好,因为它总是给出正确的结果,就像我的例子一样,我的用户数据文件夹在C:中,文档文件夹在D:中,所以我不能使用
Environ
这是很好的信息。谢谢分享。我们的公司设置很简单,因此我们的“我的文档”位于默认位置。如果需要,这对我们有用。我编辑了你的答案。我发现,由于此代码是通过在我们的过程中多次使用的自定义菜单按钮激活的,因此它创建了工作簿的多个版本。我在开头添加了一些代码,以防止这种情况再次发生。它检查活动工作簿是否已经命名。学生喜欢子名称…哈哈。但我如何将其输入到我的文档中?你和法迪都提供了很好的答案,除了这一点,他们都会为我工作。谢谢你的帮助。