Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/installation/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 根据名称列表命名工作表_Vba_Loops_Excel - Fatal编程技术网

Vba 根据名称列表命名工作表

Vba 根据名称列表命名工作表,vba,loops,excel,Vba,Loops,Excel,我正试图根据工作表(“运行”)中的名称列表,从范围(“F4”)到最后一行,命名新创建的工作表。 我的问题:宏只创建一个新工作表,而不是根据列表中的名称数量创建新工作表。请参阅下面我的代码: Sub new_1() Dim RCount As Integer Dim n As Integer Dim test As Worksheet Sheets("Security Distribution").Copy After:=Sheets(Sheets.Count) Set t

我正试图根据工作表(“运行”)中的名称列表,从范围(“F4”)到最后一行,命名新创建的工作表。

我的问题:宏只创建一个新工作表,而不是根据列表中的名称数量创建新工作表。请参阅下面我的代码:

Sub new_1()

  Dim RCount As Integer
  Dim n As Integer
  Dim test As Worksheet

  Sheets("Security Distribution").Copy After:=Sheets(Sheets.Count)
  Set test = ActiveSheet

  Application.ScreenUpdating = False

  Sheets("Run").Activate

  RCount = Range(Range("F5000").End(xlUp), Range("F4")).Rows.Count

  For n = 1 To RCount
    test.Name = Sheets("Run").Range("F4").Offset(n - 1, 0)
  Next n

  Application.ScreenUpdating = False

End sub

创建新工作表的操作超出了要重命名的循环范围。您将创建一个新的工作表并多次重命名它

Sub new_1()

    Dim RCount As Integer
    Dim n As Integer

      Application.ScreenUpdating = False

      With Sheets("Run")
              RCount = .Range(.Range("F" & Rows.Count).End(xlUp), .Range("F4")).Rows.Count
              For n = 1 To RCount
                Sheets("Security Distribution").Copy After:=Sheets(Sheets.Count)
                Sheets(Sheets.Count).Name = .Range("F4").Offset(n - 1, 0).Value
              Next n
      End With

      Application.ScreenUpdating = False

End Sub

谢谢。但是我得到一个“需要对象”错误。