对于工作簿中的所有工作表,i = 2到thisworkbook.worksheets.count

谁能帮我吗? 我试图让我的代码循环通过工作簿中的所有工作表。 它完美的一个工作表,但我努力使其遍历所有的工作表

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

要通过所有工作表循环您的代码,请使用下面的代码。

 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