VBA Excel将文件保存在Excel宏创建的文件夹中

MKR

我想将文件保存在... excel宏创建的文件夹中。

此处介绍了vba excel文件夹的创建过程:

在Excel VBA中创建文件夹和子文件夹

在此之后,我将其分配给我的情况:

 Sub Createfolder ()
     Dim fso As Object
     Dim fldrtitle As String
     Dim flrdrname As String
     Dim fldrpath As String

     Set fso = CreateObject("scripting.filesystemobject")
     fldrtitle = Worksheets("Sheet1").Range("A2").Value
     fldrname = "Pre-planning NBU " & fldrtitle
     fldrpath = "H:\ProfileV2\Desktop\Pre planning NBU\ Alex list new\" & fldrname
     If not fso.FolderExists(fldrpath) Then
         fso.Createfolder (fldrpath)
     End If
 End Sub

文件夹已创建的位置。根据前面的查询,我保存文件的方式如下:

Sub Save()
    Dim name As String, Custom_Name As String

    name = Worksheets("Sheet1").Range("A2").Value
    Custom_Name = ThisWorkbook.Path & "\" & "NBU " & name & " - Opportunity list.xlsx"
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:=Custom_name, FileFormat:=51
End Sub

现在,我尝试在某种程度上将它们组合在一起,其中方式1是:

Sub Save()
    Call Createfolder

    Dim name As String, Custom_Name As String

    name = Worksheets("Sheet1").Range("A2").Value
    Custom_Name = ThisWorkbook.Path & Createfolder & "NBU " & name & " - Opportunity list.xlsx"
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:=Custom_name, FileFormat:=51
End Sub

在这里我得到了错误:预期的函数或变量

据我了解,因为我无法在代码内部获取外部宏。

之后,我尝试了另一种方法:

 Sub Savetofolder ()
     Dim fso As Object
     Dim fldrtitle As String
     Dim flrdrname As String
     Dim fldrpath As String
     Dim name As String, Custom_Name As String

     Set fso = CreateObject("scripting.filesystemobject")
     fldrtitle = Worksheets("Sheet1").Range("A2").Value
     fldrname = "Pre-planning NBU " & fldrtitle
     fldrpath = "H:\ProfileV2\Desktop\Pre planning NBU\ Alex list new\" & fldrname
     If not fso.FolderExists(fldrpath) Then
         fso.Createfolder (fldrpath)
     End If

 'name = Worksheets("Sheet1").Range("A2").Value
     Custom_Name = ThisWorkbook.Path & Createfolder & "NBU " & fldrtitle & " - Opportunity list.xlsx"
     Application.DisplayAlerts = False
     ActiveWorkbook.SaveAs Filename:=Custom_name, FileFormat:=51
 End Sub

我关闭了该name变量,因为它与相同fldrtitle

结果如下图所示,我的文件被保存在创建的文件夹旁边:

在此处输入图片说明

有没有机会将其保存在此文件夹中?

詹姆斯·柯比

想你想要这个:

Function Createfolder() As String
  Dim fso As Object
  Dim fldrtitle As String
  Dim flrdrname As String
  Dim fldrpath As String

  Set fso = CreateObject("scripting.filesystemobject")
  fldrtitle = Worksheets("Sheet1").Range("A2").Value
  fldrname = "Pre-planning NBU " & fldrtitle
  fldrpath = "H:\ProfileV2\Desktop\Pre planning NBU\ Alex list new\" & fldrname
  If not fso.FolderExists(fldrpath) Then
      fso.Createfolder (fldrpath)
  End If

  Createfolder = fldrpath
End Function

Sub Save()

  Dim name As String, Custom_Name As String

  name = Worksheets("Sheet1").Range("A2").Value
  Custom_Name = Createfolder() & "\NBU " & name & " - Opportunity list.xlsx"
  Application.DisplayAlerts = False
  ActiveWorkbook.SaveAs Filename:=Custom_name, FileFormat:=51
End Sub

编辑

通过分离文件夹的创建并没有真正获得任何好处,这可能会更好:

Sub Save()

  Dim fso As Object
  Dim fldrtitle As String
  Dim flrdrname As String
  Dim fldrpath As String
  Dim filename As String
  Dim name As String

  'Construct folder name
  fldrtitle = Worksheets("Sheet1").Range("A2").Value
  name = Worksheets("Sheet1").Range("A2").Value 'looks like this is the same as fldrtitle, could just use same variable below
  fldrname = "Pre-planning NBU " & fldrtitle
  fldrpath = "H:\ProfileV2\Desktop\Pre planning NBU\ Alex list new\" & fldrname

  'Create folder if it doesn't exist
  Set fso = CreateObject("scripting.filesystemobject")
  If not fso.FolderExists(fldrpath) Then
      fso.Createfolder (fldrpath)
  End If

  'Construct filename and save
  filename = fldrpath & "\NBU " & name & " - Opportunity list.xlsx"
  Application.DisplayAlerts = False
  ActiveWorkbook.SaveAs Filename:=filename, FileFormat:=51
End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Outlook VBA宏,用于将电子邮件副本保存在本地文件夹中

来自分类Dev

检查文件夹是否存在并将两个工作表保存在VBA Excel中

来自分类Dev

VBA将Word文件保存到创建的文件夹

来自分类Dev

Word VBA将文件保存在新文件夹中

来自分类Dev

Excel VBA代码将文件夹中的rtf文件批量转换为pdf文件

来自分类Dev

Excel VBA忽略目录中的特定文件夹/文件

来自分类Dev

删除文件夹VBA中的非Excel文件

来自分类Dev

删除文件,然后在Excel 2010 VBA中的文件夹

来自分类Dev

Excel VBA 在文件夹中找不到 xlsx 文件

来自分类Dev

使用excel VBA创建多个文件夹

来自分类Dev

Excel Outlook VBA将未读的电子邮件保存到网络文件夹

来自分类Dev

VBA宏将SQL查询保存在csv文件中

来自分类Dev

使用excel VBA将文件自动分类到文件夹中

来自分类Dev

Excel VBA将特定文件夹中的所有Word文件转换为PDF

来自分类Dev

VBA-将文件夹列表导入Excel范围

来自分类Dev

如何在文件夹中的所有(关闭)Excel文件上运行一个VBA宏?

来自分类Dev

如何在文件夹中的所有(关闭)Excel文件上运行一个VBA宏?

来自分类Dev

禁止使用excel VBA保存到给定文件夹中

来自分类Dev

在Excel中,使用VBA用Unicode“文件夹”符号创建超链接

来自分类Dev

在Excel VBA中创建文件夹时找不到路径

来自分类Dev

在文件夹中搜索文件夹 (Excel-VBA)

来自分类Dev

用于新文件夹字符的VBA Excel宏的正则表达式

来自分类Dev

保存没有宏的 Excel 文件。Excel VBA 代码

来自分类Dev

删除文件夹中今天未保存在VBA中的所有文件

来自分类Dev

VBA宏,以验证是否已创建新文件或将新文件添加到文件夹

来自分类Dev

Excel VBA - 从静态文件夹名称复制文件并粘贴到 ActiveCell 中的文件夹名称中

来自分类Dev

从excel文件vba循环文件夹名称

来自分类Dev

Outlook VBA宏将邮件从子文件夹移动到子文件夹

来自分类Dev

从VBA中的Word文件创建Excel文件

Related 相关文章

  1. 1

    Outlook VBA宏,用于将电子邮件副本保存在本地文件夹中

  2. 2

    检查文件夹是否存在并将两个工作表保存在VBA Excel中

  3. 3

    VBA将Word文件保存到创建的文件夹

  4. 4

    Word VBA将文件保存在新文件夹中

  5. 5

    Excel VBA代码将文件夹中的rtf文件批量转换为pdf文件

  6. 6

    Excel VBA忽略目录中的特定文件夹/文件

  7. 7

    删除文件夹VBA中的非Excel文件

  8. 8

    删除文件,然后在Excel 2010 VBA中的文件夹

  9. 9

    Excel VBA 在文件夹中找不到 xlsx 文件

  10. 10

    使用excel VBA创建多个文件夹

  11. 11

    Excel Outlook VBA将未读的电子邮件保存到网络文件夹

  12. 12

    VBA宏将SQL查询保存在csv文件中

  13. 13

    使用excel VBA将文件自动分类到文件夹中

  14. 14

    Excel VBA将特定文件夹中的所有Word文件转换为PDF

  15. 15

    VBA-将文件夹列表导入Excel范围

  16. 16

    如何在文件夹中的所有(关闭)Excel文件上运行一个VBA宏?

  17. 17

    如何在文件夹中的所有(关闭)Excel文件上运行一个VBA宏?

  18. 18

    禁止使用excel VBA保存到给定文件夹中

  19. 19

    在Excel中,使用VBA用Unicode“文件夹”符号创建超链接

  20. 20

    在Excel VBA中创建文件夹时找不到路径

  21. 21

    在文件夹中搜索文件夹 (Excel-VBA)

  22. 22

    用于新文件夹字符的VBA Excel宏的正则表达式

  23. 23

    保存没有宏的 Excel 文件。Excel VBA 代码

  24. 24

    删除文件夹中今天未保存在VBA中的所有文件

  25. 25

    VBA宏,以验证是否已创建新文件或将新文件添加到文件夹

  26. 26

    Excel VBA - 从静态文件夹名称复制文件并粘贴到 ActiveCell 中的文件夹名称中

  27. 27

    从excel文件vba循环文件夹名称

  28. 28

    Outlook VBA宏将邮件从子文件夹移动到子文件夹

  29. 29

    从VBA中的Word文件创建Excel文件

热门标签

归档