【问题标题】:save Excel with date in name保存名称为日期的 Excel
【发布时间】:2018-11-03 07:59:42
【问题描述】:

我正在尝试构建一个宏,它将以指定的名称(客户和日期)保存我的 Excel 文件。 到目前为止没有工作,而且我对 VBA 不是很流利,也许这里有人愿意提供帮助:

Sub Save()

    Sheets("Tool").Unprotect Password:="xxxx"


    Dim fclient As String
    Dim path As String


    fclient = Range("G11").Value
    path = Application.ActiveWorkbook.path


    fname = "Discount for " & fclient

    Application.ActiveWorkbook.SaveAs Filename:=path & "\" & fname & Format(Now, "DD-MM-YYYY"), FileFormat:=52, CreateBackup:=False

    Sheets("Tool").Protect Password:="xxxx"


End Sub

【问题讨论】:

  • 这里似乎有什么问题?取消保护工作表与保存文件有什么关系? path 是什么?你有错误吗?如果path 以文件分隔符 `` 结尾,则会引发错误。
  • 保护膜是必要的,因为它是一种工具。指示路径是因为我希望将新文件保存在与源文件相同的位置。如果我不添加部分“&格式(现在,“DD-MM-YYYY”)”,它就可以工作,但你需要在文件名中添加那个日期
  • 您使用的是 MAC OS 吗?
  • 不,windows,excel 2016
  • 没有理由失败。我会在 `Application.ActiveWorkbook.` 处设置断点,然后在Immediate Window 中测试完整路径(例如?path & "\" & fname & Format(Now, "DD-MM-YYYY")

标签: vba date button save


【解决方案1】:

尝试使用ThisWorkbook 而不是Activeworkbook

【讨论】:

    【解决方案2】:

    除了将Format(Now(DD-MM-YYYY)) 直接放入您的路径之外,您还可以将日期设置到工作表中的单元格中,然后将单元格值用作文件名的一部分,就像您为客户名称所做的那样。

    Date 函数 uses your current system date 采用 DD/MM/YYYY 格式,而不是 Now 使用的 DD/MM/YYYY HH:MM:SS

    我已将此代码与“查找和替换”代码一起修改为您的代码,以在日期中查找“/”并将其替换为“_”。 (注意这只是简单记录,我敢肯定可以写得更好。)如果您愿意,可以将下划线更改为文件名的任何其他有效字符。

    在我的测试中,我将Path 删除为if you omit a path in the file name it will use the current files path.

    Sub Save()
    
    Dim fclient As String
    Dim tdate As String
    
    Range("G12") = Date
    
    tdate = Range("G12")
    fclient = Range("G11")
    
        Cells(12, 7).Replace What:="/", Replacement:="_", LookAt:=xlPart, SearchOrder _
            :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    
    tdate = Range("G12")
    fname = "Discount for " & fclient
    
        ThisWorkbook.SaveAs Filename:="\" & fname & "_" & tdate _
            , FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    
    End Sub
    

    我假设单元格 G12 能够包含日期。

    我不确定为什么您的原始代码不起作用,但这是一种替代方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-17
      • 2013-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-25
      • 1970-01-01
      相关资源
      最近更新 更多