使用查找重命名工作表

问题描述 投票:0回答:2

我有一个包含 100 多个工作表的现有工作簿。我需要使用查找功能重命名这些工作表。

数据示例是我在 A 列中列出了旧名称,在 B 列中列出了新名称

有没有人有可以实现这一点的 vba 代码?

提前致谢

Sub ReplaceWorkSheetName()

将 ws 调暗为工作表 将 wsNewName 变暗为字符串

对于 ActiveWorkbook.Worksheets 中的每个 ws wsNewName = Application.VLookup(ws.Name, Sheets("Test").Range("A2:B89"), 2, False) 如果不是 IsError(wsNewName) 那么 ws.Name = wsNewName 接下来ws

结束子

我收到错误类型不匹配 13 错误

excel vba lookup worksheet
2个回答
0
投票
Sub ReplaceWorkSheetName()

Dim ws As Worksheet
Dim wsNewName As Variant

For Each ws In ActiveWorkbook.Worksheets
wsNewName = Application.VLookup(ws.Name, Sheets("Test").Range("A2:B89"), 2, False)
If Not IsError(wsNewName) And TypeName(wsNewName) = "String" Then
ws.Name = wsNewName
End If
Next ws

End Sub

0
投票

试试

Sub RenameSheets()
    Dim ws As Worksheet
    Dim searchValue As String
    Dim foundCell As Range
    
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> ActiveSheet.Name Then 
            Set foundCell = ws.Range("A:A").Find(ws.Name, , xlValues, xlWhole) 
            
            If Not foundCell Is Nothing Then 
                ws.Name = foundCell.Offset(0, 1).Value
            End If
        End If
    Next ws
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.