为电子表格指定名称

时间:2015-05-28 14:38:33

标签: excel vba excel-vba

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

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

/[\[\]]/

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

我在循环中使用下面的命令,但是我收到错误:

[]

2 个答案:

答案 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)

加里学生的代码完美无缺。 我只能想象出两种错误:

  1. 工作表名称不存在

  2. A1范围内的一张纸张:A3已存在

  3. 使用此代码,您可以查看问题所在:

    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