Как перемещаться по одному столбцу на конкретных листах в excel vba?

Привет, сообщество StackOverflow:

Я хотел бы пропустить один и тот же столбец на трех конкретных листах в моей книге. Я понимаю, что должно быть что-то вроде кода, похожего на то, что было опубликовано здесь и здесь , но я не могу заставить их работать и вместо этого получать ошибку «1004», «Определяемая приложением или объектная ошибка ».

Дополнительные примечания: я ввел «Для каждого ws в этом Workbook.sheets» после деклараций и «Далее» в самом конце до «End Sub». Я также попробовал код обработки после «r = 1» в приведенном ниже коде и получил ту же ошибку 1004. Я пробовал это с помощью «Далее» после кода цикла, и он все еще только зацикливался на первом листе.

Это код:

Sub MakeWordList() Dim InputSheet As Worksheet Dim WordListSheet As Worksheet Dim PuncChars As Variant, x As Variant Dim i As Long, r As Long Dim txt As String Dim wordCnt As Long Dim AllWords As Range Dim PC As PivotCache Dim PT As PivotTable Application.ScreenUpdating = False Set InputSheet = ActiveSheet Set WordListSheet = Worksheets.Add(after:=Worksheets(Sheets.Count)) WordListSheet.Range("A1") = "All Words" WordListSheet.Range("A1").Font.Bold = True InputSheet.Activate wordCnt = 2 PuncChars = Array(".", ",", ";", ":", "'", "!", "#", _ "$", "%", "&", "(", ")", " - ", "_", "--", "+", _ "=", "~", "/", "\", "{", "}", "[", "]", """", "?", "*") r = 1 ' Loop until blank cell is encountered Do While Cells(r, 7) <> "" ' covert to UPPERCASE txt = UCase(Cells(r, 7)) ' Remove punctuation For i = 0 To UBound(PuncChars) txt = Replace(txt, PuncChars(i), "") Next i ' Remove excess spaces txt = WorksheetFunction.Trim(txt) ' Extract the words x = Split(txt) For i = 0 To UBound(x) WordListSheet.Cells(wordCnt, 1) = x(i) wordCnt = wordCnt + 1 Next i r = r + 1 Loop ' Create pivot table WordListSheet.Activate Set AllWords = Range("A1").CurrentRegion Set PC = ActiveWorkbook.PivotCaches.Add _ (SourceType:=xlDatabase, _ SourceData:=AllWords) Set PT = PC.CreatePivotTable _ (TableDestination:=Range("C1"), _ TableName:="PivotTable1") With PT .AddDataField .PivotFields("All Words") .PivotFields("All Words").Orientation = xlRowField End With End Sub 

Есть ли способ, которым я могу пропустить первые три листа или идентифицировать листы, которые я хочу пропустить? В частности, я хотел бы пройти через столбец G каждого из первых трех листов.

Я бы сделал что-то подобное, но у меня не было возможности проверить это, поэтому может потребоваться уборка.

 Dim lSheets(2) lSheets(0) = "Sheet1" lSheets(1) = "Sheet2" lSheets(2) = "Sheet3" Application.ScreenUpdating = False Set WordListSheet = Worksheets.Add(after:=Worksheets(Sheets.Count)) WordListSheet.Range("A1") = "All Words" WordListSheet.Range("A1").Font.Bold = True For k = LBound(lSheets) To UBound(lSheets) Set InputSheet = Sheets(lSheets(k)) InputSheet.Activate 'REST OF CODE' r = r + 1 Loop Next k ' Create pivot table WordListSheet.Activate 'REST OF CODE' 
Давайте будем гением компьютера.