VBA代码循环显示从特定工作表开始的工作表(索引3)

use*_*702 5 excel vba excel-vba

我需要遍历索引3提示最后一张表并运行代码.我试过这样的东西,但它不起作用.

If (ws.sheetIndex > 2) Then
        With ws
            'code goes here
        End With
End If
Run Code Online (Sandbox Code Playgroud)

我做了搜索,但找不到解决这个问题的方法.非常感谢帮助.

我也尝试过:

Dim i As Long, lr As Long
Dim ws As Worksheet
Windows("Book1").Activate

With ActiveWorkbook
    Set ws = .Worksheets("index")
    For i = 3 To 10
        'code goes here
    Next i


End With
Run Code Online (Sandbox Code Playgroud)

dji*_*kay 7

您可以尝试以下操作,它会迭代工作簿中的所有工作表,并仅对索引为3或更高的工作表进行"操作".

Dim sheet As Worksheet

For Each sheet In ActiveWorkbook.Worksheets
  If sheet.Index > 2 Then
    ' Do your thing with each "sheet" object, e.g.:
    sheet.Cells(1, 1).Value = "hi"
  End If
Next
Run Code Online (Sandbox Code Playgroud)

请注意,这不会对您拥有的工作表数量(10或其他)设置硬性限制,因为它可以与活动工作簿中的任意数量的工作表一起使用.


编辑

如果您希望代码在带有名称的工作表上运行"Sheet" + i(其中i索引号是从3开始),那么以下内容应该有所帮助:

Dim sheet As Worksheet
Dim i As Long

For i = 3 To ActiveWorkbook.Worksheets.Count
  Set sheet = ActiveWorkbook.Worksheets(i)
  If sheet.Name = "Sheet" & i Then
    ' Do your thing with each "sheet" object, e.g.:
    sheet.Cells(2, 2).Value = "hi"
  End If
Next i
Run Code Online (Sandbox Code Playgroud)

当然,这意味着您的工作表的名称需要始终遵循此模式,因此这不是最佳实践.但是,如果您确定名称将保持这样,那么它应该适合您.