【问题标题】:Saving Workbook in Multiple Locations VBA将工作簿保存在多个位置 VBA
【发布时间】:2016-06-30 20:03:38
【问题描述】:

我有两个文件:

X - 我从中运行宏的文件。 Y - 带有模板的文件,我保存到多个位置。

我该怎么做:

Y.SaveAs 文件名:="File1.xlsx"

Y.SaveAs 文件名:="File2.xlsx"

Y.SaveAs 文件名:="File3.xlsx"

我似乎找到的唯一解决方案是在第一次保存后使用 ActiveWorkbook,但根据我的阅读,这样做是一个坏习惯。还有其他方法吗?

编辑:文件名是:= "File(" & SomeDateString & ").xlsx"

代码:

Dim Y as Workbook
Set Y = "C:\MyFiles\FileTemp.xlsx"
-X Generates Data to Y
Dim datenow as date
dim datestring as string
datenow = now
datestring = Format(datenow, "Short Date")
Application.DisplayAlerts = False
Y.SaveCopyas Filename:="C:\MyData1\Budget("& datestring &").xlsx"
Y.SaveCopyas Filename:="C:\MyData2\Budget("& datestring &").xlsx"
Y.SaveCopyas Filename:="C:\MyData3\Budget("& datestring &").xlsx"
Application.DisplayAlerts = True

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    将您的工作簿设置为变量并使用它。

    Sub xxxx()
       Dim y as workbook
    
       Set y  = Workbooks("Workbook name")
    
       Y.SaveCopyAs Filename:="File(" & SomeDateString & ").xlsx"
    
       Y.SaveCopyAs Filename:="File(" & SomeDateString & ").xlsx"
    
       Y.SaveCopyAs Filename:="File(" & SomeDateString & ").xlsx"
    End Sub
    

    【讨论】:

    • 由于某种原因给我一个 1004 运行时错误。我忘记了一个重要的细节,我将在主帖中添加。
    • 查看编辑。我认为使用SaveCopyAs 应该可以解决这个问题。
    • 另外,请注意,如果您不指定文件路径和名称,它将使用活动目录。
    • 我收到 400 和运行时 1004 的随机错误。我对此感到困惑。错误时生成的文件在一个不存在的文件夹中,只有 SomeDateString 的一部分和“)”
    • 我在名称中包含了文件路径,但只是概括了文件名
    【解决方案2】:

    日期格式使用了 / 标记,这会截断我的命名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多