正如 Soren 提到的,您的代码给出了错误。
但是,如果在创建“B”后工作表“A”处于活动状态,因为工作表“B”已经存在,您的代码将给出错误。
你可能想试试这个?为此,哪个工作表处于活动状态并不重要。此代码还可以让您创建超出Z
. 所以之后的工作表Z
将被命名为AA
,AB
等等。
- 使用此代码,在 XL2007+ 中,您最多可以创建工作表
XFD
(更多 16383 张)
- 使用此代码,在 XL2003 中,您最多可以创建工作表
IV
(更多 255 张)
代码:
Sub newList()
Dim PrevLetter As String
Dim ws As Worksheet, wsNew As Worksheet
Dim wsname As String
Set ws = ThisWorkbook.Sheets("A")
ws.Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Set wsNew = ActiveSheet
wsname = GetNewName
wsNew.Name = wsname
End Sub
Function GetNewName() As String
Dim NewWs As Worksheet
For i = 2 To ThisWorkbook.Sheets(1).Columns.Count
ColName = Split(ThisWorkbook.Sheets(1).Cells(, i).Address, "$")(1)
On Error Resume Next
Set NewWs = ThisWorkbook.Sheets(ColName)
If Err.Number <> 0 Then
GetNewName = ColName
Exit For
End If
Next i
End Function