根据带有非法字符的单元格值重命名工作簿中的特定选项卡



我有一个带有工作表的工作簿,但有一个名为"final"的特定工作表,该工作表需要根据单元格值 B2 重命名,其中包含非法字符,例如"雪佛兰/ZZ">

尝试了下面的代码,但代码适用于所有工作表。

更改了所有工作表,而不是特定工作表"最终">

Sub tabname()
    Dim ws As Worksheet
    For Each ws In Worksheets
        On Error Resume Next
        If Len(ws.Range("B2")) > 0 Then    
            ws.Name = ws.Range("B2").Value
        End If
        On Error GoTo 0
        If ws.Name <> ws.Range("B2").Value Then
            MsgBox ws.Name & " Was Not renamed, the suggested name was invalid"
        End If
    Next
End Sub

例如,"CHEVROLET/ZZ"在"最终"工作表标签的单元格 B2 中。

只有工作表标签"最终"重命名为"雪佛兰-ZZ"作为最终结果

我建议修剪预期名称,替换 7 个禁止字符并将其削减到允许的最多 31 个字符:

Private Function NewTableName(ByRef IntendedName As String) As String
    Dim s As String
    s = Application.Trim(IntendedName)
    s = Replace(s, ":", "-")
    s = Replace(s, "", "-")
    s = Replace(s, "/", "-")
    s = Replace(s, "?", "-")
    s = Replace(s, "*", "-")
    s = Replace(s, "[", "-")
    s = Replace(s, "]", "-")
    NewTableName = Left(s, 31)
End Function

最后:如果您尝试使用现有工作表的名称重命名第二个工作表,则会出现错误。所以你应该在之前检查它的存在。

相关内容

最新更新