首页 > 解决方案 > 复制每个工作表中的所有行

问题描述

我需要代码方面的帮助。我想在 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

如果工作表中有一些数据,则此代码有效,但问题是如果某些工作表仅包含标题,则此代码复制该标题并将其粘贴到合并的工作表中。在那种情况下,我只想跳过那张纸。

请问,有人可以帮我吗?

标签: excelvba

解决方案


像这样的东西应该适合你:

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

推荐阅读