我有这个小代码,将名称为“ XYZ(43).xlsx”的文件重命名为“ XYZ(43)-07 / 02 / 2020.xlsx”
我试过使用FSO.Move,FSO.movefile,Name作为但它们都不起作用。我怀疑它是因为名称中的空格。有人可以帮我吗?
Const SourcePath As String = "C:\Users\a\Desktop\Suraj\Imp\"
Const DestinationPath As String = "C:\Users\a\Desktop\Suraj\personal\"
Set FSO = CreateObject("scripting.filesystemobject")
Set Directory = FSO.GetFolder(SourcePath)
Set files = Directory.files
Set RegExp = CreateObject("VBScript.Regexp")
RegExp.Pattern = "XYZ \([0-9]+\).xlsx"
For Each eachfile In files
fileName = FSO.getFileName(eachfile)
Nameonly = FSO.GetBaseName(fileName)
newfilename = "" & Nameonly & "-" & Date
If RegExp.Test(fileName) Or fileName = "XYZ.xlsx" Then
Set file = FSO.GetFile(eachfile)
NewFile = SourcePath & newfilename
msgbox Dir(eachfile)
FSO.moveFile Source:="" & SourcePath & fileName, Destination:=SourcePath & newfilename
End If
Next eachfile
问题不在于空间,而是Date
下面一行的斜线:
newfilename = "" & Nameonly & "-" & Date
该/
是在文件名中无效字符:
例如,也许使用Format$
将正斜杠更改为破折号。
newfilename = "" & Nameonly & "-" & $Format(Date,"dd-mm-yyyy")
(尽管您不需要领导"" &
)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句