在VBA中保存Excel工作表时如何制作唯一的文件名

我有一个电子表格,这是每个人都可以访问的模板。我希望他们点击的第一个按钮是我的宏“另存为”按钮,该按钮保存在SharePoint的正确位置。

这很好用!但是...它会在没有警告的情况下覆盖。

我想1-确保它永远不会被覆盖-我希望它在不保存任何内容的情况下取消该过程。

其次,我希望将其保存为“ [预定名称] _copy01”,其中01可以转到99,以防原始人完成工作表后其他人再次按下该按钮(因此首先破坏了该名称)人节)。

这是我当前的代码-如何至少弹出一个覆盖文件,甚至更好的是,为副本重命名(我假设这是某种“ if”或“ if / else”语句)

Sub Save_Workook_NewName()

Dim tillDay As Date

If Time < 11 / 24 Then    
    tillDay = Date - 1 + 11 / 24    
Else    
    tillDay = Now    
End If

Application.AlertBeforeOverwriting = True

Dim path As String
path = "https://ourcorporatesite.sharepoint.com/sites/tills/Shared%20Documents/Nightly%20Tills/"
ThisWorkbook.SaveAs FileName:=path & Format(Now(),"yy-mm-dd") & "_Tills.xlsm",FileFormat:=xlOpenXMLWorkbookMacroEnabled,ReadOnlyRecommended:=False

End Sub
xiaoliye 回答:在VBA中保存Excel工作表时如何制作唯一的文件名

要创建唯一的文件名,请使用Excel用户的用户名和当前时间戳。因此,可以确保每个用户始终生成不同的文件名。只需确保代码运行超过1秒(或在名称生成器中添加1秒等待时间)即可:

Public Function GenerateName() As String
    GenerateName = Format(Now(),"yyyy_mm_dd_hh_MM_ss") & "_" & Environ("Username")
End Function

在这种情况下,如果要保存文件,请执行以下操作:2019_11_14_22_08_50_vityata。作为奖励,它可以轻松地按创建日期排序。

可以这样称呼:

ThisWorkbook.SaveAs Filename:=Path & GenerateName & ".xlsm"
本文链接:https://www.f2er.com/3099382.html

大家都在问