您提出的方法存在几个问题:
- 将字符串转换为日期序列可能会出现问题,不确定 Excel 是否会将日期解释为
dd.MM
或MM.dd
。由于您事先知道格式,因此直接提取月份和年份。
\
不是工作表名称的有效字符。我用过_
,随意替换
Function GetMonthandYear(FileDate As String) As String
Dim dot1 As Long, dot2 As Long
Dim m As String, y As String
dot1 = InStr(FileDate, ".")
dot2 = InStr(dot1 + 1, FileDate, ".")
m = Mid$(FileDate, dot1 + 1, dot2 - dot1 - 1)
y = Mid$(FileDate, dot2 + 1, InStr(FileDate, " ") - dot2 - 1)
GetMonthandYear = Format$(DateSerial(y, m, 1), "MMMM_yyyy")
End Function
像这样称呼它
Sub Test()
Dim FileDate As String
FileDate = "15.04.2012 16-31-18"
ActiveSheet.Name = GetMonthandYear(FileDate)
End Sub