【问题标题】:Automatically Save File as Text With Friday's Date自动将文件另存为带有星期五日期的文本
【发布时间】:2018-01-31 15:57:00
【问题描述】:

我录制了一个宏,最后将工作簿保存为文本文件并关闭。

我想将文件名更改为星期五的日期,以便每周保存时文件名不同。

这是宏记录的内容

ActiveWorkbook.SaveAs Filename:= _
    "C:\Users\username\Desktop\Temp\\File2218.txt" _
    , FileFormat:=xlText, CreateBackup:=False

我试着改成

ActiveWorkbook.SaveAs Filename:= _
    "C:\Users\username\Desktop\Temp\File" & Text(Today()+2, "mdyy")& txt" _
    , FileFormat:=xlText, CreateBackup:=False

(我之所以选择 +2 是因为它总是在一个星期三完成,因此 +2 = 星期五)

但它不起作用。

任何帮助将不胜感激!

【问题讨论】:

  • & txt 更改为 & .txt。你忘了.
  • 使用Environ$("USERPROFILE") & "\Desktop 获取当前用户的桌面文件夹。要列出所有环境变量,请在 cmd 控制台中执行 set

标签: vba excel


【解决方案1】:

C:\Users\username 文件夹真的存在吗?您可能需要将username 更改为您自己的用户名,或者像这样使用Environ$("Username")

"C:\Users\" & Environ$("Username") & "\Desktop\Temp\File" 

并确保该文件夹也存在,否则您将收到另一个错误。

另外,使用DateAdd() 添加天数:

NewDate = DateAdd("d", 2, Date)

还有Format$() 来格式化它(Text() 更像是一个工作表函数)

完成后,您将得到以下结果:

ActiveWorkbook.SaveAs Filename:= _
    "C:\Users\" & Environ$("Username") & "\Desktop\Temp\File" & _
     Format$(DateAdd("d", 2, Date), "mdyy") & ".txt" _
    , FileFormat:=xlText, CreateBackup:=False

【讨论】:

  • 感谢Environ$ 的建议(实际上是整个答案)!我什至会推荐使用Environ$("temp"),它提供了C:\Users\(name)\AppData\Local\Temp 的路径(至少在Win7 Pro 上),这是一个更适合存储每个用户临时文件IMO 的地方。
  • 或者如果路径必须在\Desktop下,使用Environ$("userprofile")可靠地得到C:\Users\(name)部分。
  • 路径不是问题-出于隐私目的,我只是删除了用户名。使用你所说的大部分内容,我做了ActiveWorkbook.SaveAs Filename:= _ "C:\Users\swall\Desktop\Temp\File" & _ Format$(DateAdd("d", 2, Date), "mdyy") & ".txt" _ , FileFormat:=xlText, CreateBackup:=False,效果很好!
猜你喜欢
  • 2017-06-05
  • 2020-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-23
  • 1970-01-01
相关资源
最近更新 更多