Soren提到你的代碼給出錯誤。
但是,如果工作表「A」在創建「B」後已經激活,並且工作表「B」已經存在,那麼您的代碼將會出錯。
您可能想試試這個嗎?爲此,哪個紙張處於活動狀態並不重要。此外,這段代碼將允許您創建超出Z
的工作表。所以Z
後,張將被命名爲AA
,AB
等。
- 使用此代碼,在XL2007 +您可以創建表截至
XFD
(更多16383張)
- 使用此代碼,在XL2003您可以創建片向上直到
IV
(更255張)
CODE:
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
。但是,所有變種都適用,因爲可以從任何工作表創建新工作表,所以Siddharth的解決方案對我來說確實非常有用。謝謝你們,夥計們。@Søren,@ Chris – Dan