VBA从活动工作表顺序重命名工作表

时间:2018-10-25 16:48:24

标签: vba

已经很久了。我需要一个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

3 个答案:

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