For i = 2 to thisworkbook.worksheets.count 遍历工作簿中的所有工作表

For i = 2 to thisworkbook.worksheets.count through all the worksheets in a workbook

谁能帮帮我?我试图让我的代码循环遍历工作簿中的所有工作表。它非常适合一张工作表,但我正在努力让它遍历所有工作表

    Sub stringcheck()

Dim MainString As String
Dim SubString As String
Dim Lastrow As Long, Lcount As Long
Dim i As Integer, j As Integer

SubString = "All Grps"

Lastrow = ThisWorkbook.Worksheets("SalesChannelName").Range("A30000").End(xlUp).Row


For i = 3 To Lastrow
    MainString = Range("B" & i)
        If InStr(MainString, SubString) <> 0 Then
            Rows(Range("A" & i).Row + 1 & ":" & Range("A" & i).Row + 2).Insert
        End If
Next i

End Sub

要循环遍历所有工作表,请使用以下代码。

Sub stringcheck()

Dim MainString As String
Dim SubString As String
Dim Lastrow As Long, Lcount As Long
Dim i As Integer, j As Integer
Dim ws As Worksheet

For Each ws In ActiveWorkbook.Worksheets
ws.Activate
SubString = "All Grps"

Lastrow = ActiveSheet.Range("A30000").End(xlUp).Row


For i = 3 To Lastrow
    MainString = Range("B" & i)
        If InStr(MainString, SubString) <> 0 Then
            Rows(Range("A" & i).Row + 1 & ":" & Range("A" & i).Row + 2).Insert
        End If
Next i
Next ws
End Sub

你可以试试这个...

Sub stringcheck()
    Dim ws As Worksheet
    Dim MainString As String
    Dim SubString As String
    Dim Lastrow As Long, Lcount As Long
    Dim i As Integer, j As Integer

    Application.ScreenUpdating = False

    SubString = "All Grps"

    For Each ws In ActiveWorkbook.Worksheets
        Lastrow = ws.Cells(Rows.Count, 1).End(xlUp).Row
        For i = Lastrow To 3 Step -1
            MainString = ws.Range("B" & i)
            If InStr(MainString, SubString) <> 0 Then
                ws.Range("A" & i + 1).Resize(2).EntireRow.Insert
            End If
        Next i
    Next ws
    Application.ScreenUpdating = True
End Sub