我正在尝试创建多个工作表,并根据在同一工作表中建立的范围为其分配预定义的名称。
例如,我在工作表“名称”中有范围(A1:A3)的以下值:
/[\[\]]/
我想在名为“Test1”,“Test2”和“Test3”的同一工作表中创建新工作表
我在循环中使用下面的命令,但是我收到错误:
[]
答案 0 :(得分:3)
您必须在循环中引用每个名称:
Sub SheetAddre()
Dim a As Range
For Each a In Sheets("Names").Range("A1:A3")
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = a.Value
Next a
End Sub
答案 1 :(得分:-1)
加里学生的代码完美无缺。 我只能想象出两种错误:
工作表名称不存在
A1范围内的一张纸张:A3已存在
使用此代码,您可以查看问题所在:
Sub SheetAddre()
Dim a As Range
If (Not SheetExists("Names")) Then
MsgBox ("The sheet called Names does not exists")
Exit Sub
End If
For Each a In Sheets("Names").Range("A1:A3")
If (SheetExists(a.Value)) Then
MsgBox ("The sheet called" + a.Value + " already exists")
Exit Sub
End If
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = a.Value
Next a
End Sub
Function SheetExists(n) As Boolean
SheetExists = False
For Each ws In Worksheets
If n = ws.Name Then
SheetExists = True
Exit Function
End If
Next ws
End Function