【问题标题】:Appending Username and Date to Save As in VBA在 VBA 中附加用户名和日期以另存为
【发布时间】:2015-07-21 15:44:18
【问题描述】:

如何使用 vba 代码保存 excel 文件,以便将用户名和日期附加到宏中?

这是我为使其工作而编写的代码:

ActiveWorkbook.SaveAs FileName:=(Environ$("Username")) & "_" & Date & "_BKMtracker.xlsx", FileFormat:=xlOpenXMLWorkbook

【问题讨论】:

  • 你的代码的结果是什么?您是否收到错误消息?
  • 您需要一个文件扩展名。 "_BKMtracker.xlsx"
  • 您的代码对我有用。您是否在以前未保存的文件上运行此程序?在这种情况下,您需要为其指定文件路径和名称。
  • @MatthewD 错误是:运行时错误'1004':对象'_Workbook'的方法'SaveAs'失败文件扩展名不能解决问题,但我会更新问题以包含它,因为我认为这是朝着正确方向迈出的一步。
  • @Grade'Eh'Bacon 我正在更新问题,您能否看看以下更改是否仍对您有效?如果是这样,那么除了代码之外肯定存在其他问题。

标签: vba excel


【解决方案1】:

试试这个:-

ActiveWorkbook.SaveAs FileName:=(Environ$("Username")) & "_" & Date & "_BKMtracker.xlsx", FileFormat:=xlOpenXMLWorkbook

感谢@MatthewD

【讨论】:

  • 我收到以下错误:此扩展名不能与所选文件类型一起使用。在文件名文本框中更改文件扩展名或通过更改另存为类型来选择不同的类型。
  • 在解决了这个问题之后,我仍然得到“对象'_Workbook'的方法'SaveAs'失败
  • 除非您对其进行格式化,否则Date 中包含/,这是文件名中不允许使用的字符。
  • 例如,指定Date 的格式以使用句点代替斜杠,如Format(Date,"mm.dd.yyyy") 或类似的任何内容
  • @CodingNovice 你看到上面padawan 的评论了吗?我的日期格式设置为 dd-mmm-yy;如果你的是 dd/mm/yyyy 那么斜线会给你带来麻烦。创建文本字符串而不是文件名。让它吐出文本字符串,看看它是否是一个你可以有效地将文件保存为的名称。
【解决方案2】:
Sub SaveDocument()
    Dim username As String
    Dim nowFormated As String
    Dim path As String
    Dim filename As String
    Dim extention As String

    username = Environ("Username") & "_" 'gets the username
    nowFormated = CStr(Format(now, "yymmdd"))  'or every format you like
    path = "D:\" 'Wherever you want to save the file
    filename = "_BKMtracker" 'or what you want
    extention = ".xlsm" 'for example (with macros, else you have to change the FileFormat too)

    ActiveWorkbook.SaveAs filename:=path & username & nowFormated & filname & extention, _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub

【讨论】:

  • 我稍后会看看这个。我首先想看看我是否可以让原始格式在@Billy Norbu 的回复中起作用。
猜你喜欢
  • 1970-01-01
  • 2014-09-28
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-20
  • 2020-01-25
相关资源
最近更新 更多