将名称分配给电子表格

我正在尝试创build多个工作表,并根据在同一工作表中build立的范围为其分配预定义的名称。

例如,对于“名称”表中的范围(A1:A3),我有以下值:

Test1 Test2 Test3 

我想在名为“Test1”,“Test2”和“Test3”的同一个工作表中创build新工作表

我在循环中使用下面的命令,但我得到一个错误:

 Sheets.Add After:=Sheets(Sheets.Count) ActiveSheet.Name = CStr(Range("A2")) 

您必须在循环中引用每个名称:

 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 

加里的学生的代码完美的作品。 我只能想象2种错误:

  1. 表单名称不存在

  2. 范围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