Скопируйте все строки с каждого листа - PullRequest
0 голосов
/ 07 мая 2019

Мне нужна помощь с кодом. Я хочу объединить все строки из нескольких листов, кроме заголовка в одном листе в Excel.

Вот код:

Dim ws As Worksheet
Dim sh As Worksheet
Set sh = Sheets("P&L_consolidation")

For Each ws In Sheets
    If ws.Name <> "Zero's" Then
       ws.Range("A2", ws.Range("U"& Rows.Count).End(xlUp)).Copy sh.Range("A"& Rows.Count).ENd(xlUp)(2)
    End if
Next ws

Этот код работает, если на листе есть какие-то данные, но проблема в том, что если какой-то лист содержит только заголовок, этот код копирует этот заголовок и вставляет его в объединенный лист. В этом случае я просто хочу пропустить этот лист.

Пожалуйста, кто-нибудь может мне помочь?

1 Ответ

1 голос
/ 07 мая 2019

Что-то вроде этого должно работать для вас:

Sub tgr()

    Dim wb As Workbook
    Dim ws As Worksheet
    Dim wsDest As Worksheet

    Set wb = ActiveWorkbook
    Set wsDest = wb.Worksheets("P&L_consolidation")

    For Each ws In wb.Worksheets
        If ws.Name <> "Zero's" Then
            With ws.Range("A2", ws.Cells(ws.Rows.Count, "U").End(xlUp))
                If .Row >= 2 Then .Copy wsDest.Cells(ws.Rows.Count, "A").End(xlUp).Offset(1)
            End With
        End If
    Next ws

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...