首页 > 解决方案 > 需要替换工作表名称

问题描述

有没有办法(可能有代码)来搜索和替换工作表名称?

例如,我有 20 个工作表名称,名称中包含“Direct (1)”、“Direct (2)”、“Direct (3)”等,我想替换“Direct (2)”在每个实例中将工作表名称中的“Net”。

所以它将是 "Net (1)" , "Net (2)" , "Net (1)"

Public Sub Direct2ToNet()
     Const sRepl As String = "Direct (2)"
     Dim ws As Worksheet
     Dim nPos

     On Error Resume Next

     For Each ws In ActiveWorkbook.Worksheets
         With ws
             If .Name Like "*" & sRepl & "*" Then _
                .Name = Replace(.Name, sRepl, "Net")
         End With
     Next ws

     On Error GoTo 0
 End Sub

标签: excelvba

解决方案


以下应该足够了:

Option Explicit

Public Sub Direct2ToNet()
    Const sRepl As String = "Direct"

    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        ws.Name = Replace$(ws.Name, sRepl, "Net")
    Next ws
End Sub

推荐阅读