VBA - 如果工作表名称已存在,则创建一个新工作表并添加后缀

问题描述

我是 VBA 的新手。我想创建新工作表并从主工作表的单元格 (A1) 命名它。如果新工作表名称已被使用,我想在新工作表名称添加后缀“(1)”。任何帮助都会很棒。

解决方法

我已经测试了以下内容,它似乎可以满足您的要求。后缀会根据工作簿中已命名工作表的数量逐渐增加。不过,可能有更好的方法,但我不是真正的 VBA 专家。

归功于我针对您的问题改编的另一个答案:Excel VBA Trying to create a new worksheet

Sub addWorksheet()
Dim worksheetName As Variant
Dim i As Integer

i = 0

worksheetName = ActiveWorkbook.Worksheets("Sheet1").Range("A1").Value

For Each ws In ThisWorkbook.Worksheets

    worksheetExists = (InStr(1,ws.Name,worksheetName,vbTextCompare) = 1)
    
    If worksheetExists Then
        
        i = i + 1
        
    End If
    
Next ws

If i > 0 Then

    worksheetName = worksheetName & "(" & i & ")"
    
End If

With ThisWorkbook.Worksheets.Add
        .Name = worksheetName
End With
    
End Sub

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...