【问题标题】:Excel Macro VBA- How to save as xlsm with a filename based on date and cell value [closed]Excel宏VBA-如何使用基于日期和单元格值的文件名另存为xlsm [关闭]
【发布时间】:2016-04-22 19:08:32
【问题描述】:

我真的很喜欢解决方案here,它提供了强制保存为 xlsm 文件的 VBA。请记住,我对 VBA 几乎一无所知,我该如何修改此代码以执行以下操作:

  • 继续强制另存为 xlsm
  • 文件名等于名为“REPORT”的工作表中单元格 C1 的值 + 文本“BSC” + YYYY.MM.DD 格式的日期

任何帮助将不胜感激。

【问题讨论】:

  • 所以我今天感觉很慷慨,但是在这点上,你真的应该至少尝试学习而不是让别人为你做这件事......我再次感觉很慷慨,所以你应该感到幸运. Dim sFileName As String sFileName = Sheets("REPORT").Range("C1").Value & " BCS " & Format(DateTime.Now, "yyyy.mm.dd") & ".xlsm" ActiveWorkbook.SaveAs sFileName
  • 我同意 Sorceri,并且在发布该评论时仍在编辑。我刚看到。这正好在应该或不应该回答的边界上。但是你问它的方式看起来像是帮助你到了一个新的水平。我的回答是给你一些,但你必须把它拼凑起来才能完成这个难题。祝你好运。你可以做到的。

标签: excel vba xlsm


【解决方案1】:

如果你在上面写的那一行:

ThisWorkbook.SaveAs Filename:=FileNameVal & ".xlsm", FileFormat:=ThisWorkbook.FileFormat 
        Application.EnableEvents = True 

您将文件保存为 FileNameVal 下保存的任何值

使用一些基本变量,可以设置字符串,替换FileNameVal的值

Dim newFileName As String, nameDate As String, sheet As String, tempVal As String

    sheet = "REPORT"
    tempVal = Sheets(sheet).Range("C1").Text
    nameDate = Format(Date, "yyyy.mm.dd")
    newFileName = tempVal & "BSC" & nameDate

查看 Locals 窗口,您可以看到在使用 F8 单步执行代码时值发生了变化。

【讨论】:

  • 这是为了给你一些缺失的元素。你应该可以从这里完成。
  • 感谢 peege 和 Sorceri 的帮助。这是我第一次真正需要尝试任何类型的 VBA,而且在我生命的大部分时间里,我还远不是一个程序员,但是如果我得到一些与我正在工作的问题相关的非常具体的建议之后,我往往能够让自己有足够的能力在以后提出关于 HTML、CSS 或 PHP 的非常好的问题。所以这会有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多