在扩展名完整的文件名中插入时间戳

我从单元格获取Excel文件的完整路径,并使用函数来检索文件名。我得到的最终结果为“ abc.xlsx”

我需要在文件名中插入一个时间戳,例如“ abc_02_11_19.xlsx”。

我能够生成时间戳,问题在于附加时间戳。我能想到的最好的办法是从文件名中删除最后五个字母,即“ .xlsx”,附加时间戳,然后附加“ .xlsx”。

结尾也可能是“ .xlsm”,“。xlsb”或“ .xls”。我需要提取点后的所有内容。

是否有更好的方法可以做到这一点?

我正在使用的代码段-

oldname = FunctionToGetName(ThisWorkbook.Sheets("Sheet1").Range("B10").Text)

newname = FileDateTime(ThisWorkbook.Sheets("Sheet1").Range("B10").Text) & " " & oldname

newname = Replace(Replace(Replace(newname,":","_"),"/","*","_")

这会将时间戳记插入文件名之前。我需要在后面加上它。

lic1234567890 回答:在扩展名完整的文件名中插入时间戳

由于您不知道它们的功能,因此我尚未使用您的功能对其进行测试。但是如果我没错,FunctionToGetName会将文件名返回为“ filename.extension”,而FileDateTime将返回您希望附加的日期戳。

通过此操作,您可以通过在“。”之后剪切所有内容来获取文件名。与Left$(filename,InStr(oldname,".") - 1)。然后,您可以执行相反的操作,并使用Right$(oldname,Len(oldname) - InStr(oldname,"."))重新添加文件扩展名。而且如下所述,您可以在两者之间放置几乎所有内容。

Sub what()
Dim filename As String
Dim oldname As String

oldname = FunctionToGetName(ThisWorkbook.Sheets("Sheet1").Range("B10").Text)

Newname = Left$(filename,".") - 1) & " " & FileDateTime(ThisWorkbook.Sheets("Sheet1").Range("B10").Text) & "." & Right$(oldname,"."))
End Sub
,

签出FSO

Dim fso as object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim oldname As String
Dim newname As String
oldname = "abc.xlsx"
newname = fso.GetBaseName(oldname) & "_" & Format(Now(),"mm_dd_yy") & "." & fso.GetExtensionName(oldname)
Debug.Print newname

https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/filesystemobject-object

本文链接:https://www.f2er.com/3167249.html

大家都在问