Я хочу найти каждую строку в каждом листе, чтобы найти текст, а затем вернуть всю строку данных - PullRequest
0 голосов
/ 07 января 2020

У меня есть рабочая тетрадь, содержащая около 100 листов с трехбуквенным кодом в качестве заголовка. Я хочу, чтобы l oop на каждом листе и на каждом листе, l oop через столбец 2 ("b") и посмотреть, содержат ли ячейки в любой строке слово "Всего", если они есть, затем перейдите к в следующей строке, если они не копируют эту строку до столбца 11 и не вставляют ее на указанный рабочий лист. Кажется, это ничего не дает, и мне интересно, где я ошибся? Отредактированный код ниже, сообщений об ошибках больше нет.

Sub Charges()

Dim ws As Worksheet, r As Range, rw As Long

Set wb = ThisWorkbook.Sheets
Set a = ThisWorkbook.ActiveSheet
Set b = wb("Output")



    For Each ws In wb
        rw = 2
        If Len(ws.Name) = 3 Then
            For Each r In a.Range("B3").CurrentRegion.Columns(1).Cells
                If InStr(1, r.Value, "Total") < 0 Then
                    r = r + 1
                    With a
                        .Range(Cells(r, 2), Cells(r, 11)).Copy b.Cells(r, 2)
                    End With
                End If
            Next r
        End If
    Next ws

End Sub

Может кто-нибудь помочь? Lmk, если вам нужно разъяснение.

1 Ответ

1 голос
/ 07 января 2020

Я думаю, у вас есть ссылки на листы, которые вам не нужны.

Sub Charges()
    Dim wb As Workbook
    Set wb = ThisWorkbook

    Dim b As Worksheet
    Set b = wb.worksheets("Output")

    Dim rw As Long
    rw = 2

    Dim ws As Worksheet
    For Each ws In wb.Sheets
        If Len(ws.Name) = 3 Then
            Dim r As Range
            For Each r In ws.Range(ws.Cells(3, 2), ws.Cells(ws.Rows.Count, 2).End(xlUp)).Cells
                If InStr(1, r.Value, "Total") < 1 Then
                    With ws
                        .Range(.Cells(r.Row, 2), .Cells(r.Row, 11)).Copy b.Cells(rw, 2)
                        rw = rw + 1
                    End With
                End If
            Next r
        End If
    Next ws
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...