已经很久了。我需要一个VBA来将活动工作表中的工作表Test 1,Test 2等命名为右边,
或对所有选定的图纸执行相同的操作。 IE,我将选择一个10张纸的块并运行宏以将其重命名为“测试1,...测试10” 哪种方法都没有关系,但是有些工作表我不希望更改名称,因此我只需要以下内容就可以在选定工作表的某个块上工作,或者只需要从活动工作表开始,一直到右边。
我正在使用以下代码:
Sub nameShts()
Dim i As Integer
For i = 1 To Worksheets.Count
Worksheets(i).Name = "Week" & i
Next i
End Sub
答案 0 :(得分:3)
您已经快将想法从所选工作表循环到最后一个工作表。代替1 to Worksheets.Count
使用ActiveSheet.Index to Worksheets.Count
Sub nameShts()
Dim i As Integer
For i = ActiveSheet.Index To Worksheets.Count
Worksheets(i).Name = "Week" & i
Next i
End Sub
答案 1 :(得分:3)
要循环播放所选工作表,请使用ThisWorkbook.Windows(1).SelectedSheets
获取所选工作表的集合。
然后简单地循环收集。
选择所需的工作表并运行:
Sub nameShts()
Dim i As Integer
i = 1
Dim sh As Worksheet
For Each sh In ThisWorkbook.Windows(1).SelectedSheets
sh.Name = "Week" & i
i = i + 1
Next sh
End Sub
它只会更改所选的图纸
答案 2 :(得分:0)
Worksheet.Next
似乎很适合这个问题
Sub nameShts()
Dim ws As Worksheet
Set ws = ActiveSheet
Do
ws.Name = "Test " & (ws.Index - ActiveSheet.Index + 1)
Set ws = ws.Next
Loop While Not ws Is Nothing
End Sub