将名称分配给电子表格
我正在尝试创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种错误:
-
表单名称不存在
-
范围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