删除书中所有工作表名称中的日期

时间:2013-12-27 15:44:51

标签: excel vba excel-vba

我在VBA的新文件中复制了几张。所有这些工作表都在名称末尾有一个当前日期,如“YYYYMMDD”。如何删除日期部分?我试过这个,但它不起作用:

表格为A.20131226B.20131226C.20131226,例如

Dim SheetNames As Variant
SheetNames = Array( "A", B", "C")
If ActiveSheet.Name = SheetNames + "." + VBA.Format(asofdate, "yyyyMMdd") Then
ActiveSheet.Name = SheetNames
End If

2 个答案:

答案 0 :(得分:3)

你说所有这些表都有一个当前日期在名称的末尾...... 但你为什么要做一个“if”陈述?你可以关掉最后一部分:

 newname = Left(oldname, Len(oldname) - 9)

(9因为“.yyyyMMdd”字符串)

答案 1 :(得分:0)

也许:

Sub SheetNameFixer()
Dim s As Worksheet
For Each s In Sheets
    st = s.Name
    NumPart = Right(st, 8)
    If IsNumeric(NumPart) Then
        s.Name = Left(st, Len(st) - 8)
    End If
Next s
End Sub