在循环VBA中命名工作表
我试图根据工作表(“运行”)中的名称列表对工作表进行命名。范围(“F4”)到最后一行的数据。下面的代码在命名一个工作表时有效在循环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
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