Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/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 list_Days() Dim sName As String Dim i As Integer i = ActiveWorkbook.Worksheets.Count sName = Sheets("Run").Range("F4") Worksheets("Security Distribution").Copy After:=Worksheets(i

我试图根据工作表(“运行”)中的名称列表对工作表进行命名。范围(“F4”)到最后一行的数据。下面的代码在命名一个工作表时有效

Sub list_Days()


Dim sName As String
Dim i As Integer
i = ActiveWorkbook.Worksheets.Count

sName = Sheets("Run").Range("F4")

Worksheets("Security Distribution").Copy After:=Worksheets(i)
ActiveSheet.Name = sName

End Sub

我的问题:有人能帮我建立一个有效的循环来解决我的问题吗

对于x=y到z这应该是一个简单的
循环,在目标范围内有一个增量(假设其余代码按预期工作)-


在您指出已解决的解决方案中,存在预先存在的
行.Count
而不是
行.Count
问题。我已经编辑了答案以反映
行。计数
。非常感谢。在这种情况下,答案是有效的,但在我现在运行的另一个宏中它不起作用。如果我应用上面的答案,我将得到错误的命名。上面的第一次将起作用,但你必须在第二次重新定义i,因为它不再等于工作表的计数。每次您添加另一个工作表并命名它时,我必须被提升1或使用
i=ActiveWorkbook.Worksheets.Count重新分配。不能有多个工作表具有相同的名称name@Jeeped谢谢,现在问题解决了
Sub list_Days()

Dim sName As Range
Dim i As Integer
Dim j As Integer
i = ActiveWorkbook.Worksheets.Count
j = 0
sName = Sheets("Run").Range("F4")


 For x = 1 To i
 Set sName = sName.Offset(j, 0)
 Worksheets("Security Distribution").Copy After:=Worksheets(x)
 ActiveSheet.Name = sName.Value
 j = j + 1
 Next

End Sub