我正在使用Excel 2013.我有一个添加新工作表并重命名的宏。但是当我第二次运行宏时,它会抛出一个错误,因为有一个名称刚刚创建的工作表。例如,我创建一个工作表并将其命名为Account,下次当我运行宏时,我希望它是Account1,下次是Account2,依此类推。
答案 0 :(得分:1)
在没有看到其余代码的情况下,请参阅下文,其中假设您要创建10个新选项卡,从Account1开始,以Account10结束。它的工作原理是使用计数器变量从10开始倒计时,每次创建新标签时,它只是将计数器的值附加到表单名称的“帐户”。
Sub Sheet_Creation()
Dim counter As Integer
For counter = 10 To 1 Step -1
Sheets.Add.Name = "Account" & counter
Next counter
End Sub
答案 1 :(得分:0)
此过程将添加一个新工作表并正确命名:
System.properties
注意:您可以通过编辑第一行来管理应用于新创建的工作表的基本名称。
<强>更新强>
根据您的新要求,您可以使用基本名称(&#39;问题中的帐户&#39;)访问稍后创建的最新工作表,请使用以上程序的此版本:< / p>
Sub AddWS()
Const WS_NAME = "Account"
Dim c
On Error Resume Next
With Sheets.Add(, ActiveSheet)
Do
.Name = WS_NAME & c
If Err = 1004 Then
c = c + 1
Err.Clear
Else
Exit Do
End If
DoEvents
Loop
End With
End Sub
现在,稍后当您希望选择该表时,可以使用以下代码:
Sub AddWS()
Const WS_NAME = "Account"
Dim c
On Error Resume Next
With Sheets.Add(, ActiveSheet)
Do
.Name = WS_NAME & c
If Err = 1004 Then
c = c + 1
Err.Clear
Else
Exit Do
End If
DoEvents
Loop
ThisWorkbook.Names.Add "Newest_" & WS_NAME, .Name
End With
End Sub
答案 2 :(得分:-1)
Private Sub CreateSheet()
Dim ws As Worksheet
With ActiveWorkbook
Set ws = .Sheets.Add(After:=.Sheets(.Sheets.Count))
ws.Name = "Account" & Worksheets.Count
End With
End Sub
上述宏将创建名为Account#的新工作表,其中#=总工作表数。