首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过4个工作表创建一个循环粘贴不工作

通过4个工作表创建一个循环粘贴不工作
EN

Stack Overflow用户
提问于 2019-04-09 04:24:03
回答 2查看 23关注 0票数 0

嗨,伙计们,我在为Udemy做一门课程,很不幸的是,这位讲师的反应并不是最好的。

我有一本名为QuarterlyReport的工作簿和5张工作表。

  1. 东方记录
  2. 西方记录
  3. 北方记录
  4. 南方记录
  5. 年度报告

我的代码格式化工作表1-4,然后复制,将信息粘贴到最后未使用行的年度报告中。由于某种原因,代码只粘贴South。我的目标是复制每一张1-4页,并将其粘贴到第五张“年度报告”上。。

代码语言:javascript
运行
复制
Public Sub Finalreportloop()
    Dim i As Integer
    i = 1

    Do While i <= Worksheets.Count - 1
        Worksheets(i).Select

        AddHeaders
        FormatData
        AutoSum

        ' copy the current data
        Range("A1").Select
        Selection.CurrentRegion.Select

        Selection.Copy

        ' select the final report WS'
        Worksheets("yearly report").Select

        'find the empty cells

    LastRow = Sheets(i).Range("A" & Sheets(i).Rows.Count).End(xlUp).Row


       'paste the new data in
        ActiveSheet.Paste

            i = i + 1
    Loop
End Sub

Addheaders、FormatData和AutoSum引用了我创建的其他模块。谢谢大家!

EN

回答 2

Stack Overflow用户

发布于 2019-04-09 04:34:24

代码确定要从其中复制的工作表的最后一行,但对该信息不做任何操作。相反,它只是粘贴到活动表中,并覆盖在最后一个循环实例中提交的数据。因此,它似乎只是在复制/粘贴最后一个数据集。

您需要在年度工作表中找到最后一行,然后粘贴下面的数据。

票数 0
EN

Stack Overflow用户

发布于 2019-04-09 06:33:34

您可以尝试以下方法之一:

代码语言:javascript
运行
复制
Option Explicit

Sub test()

    Dim ws As Worksheet
    Dim wsLastRow As Long, wsLastColumn As Long, yrLastRow As Long
    Dim rngCopy  As Range

    For Each ws In ThisWorkbook.Worksheets

        If ws.Name <> "YEARLY REPORT" Then

            With ws
                'Method 1 - You can siply used range
'                .UsedRange.Copy

                'Method 2 - You can calculate LastColumn & LastRow and create the range
                wsLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row '<- Find last row of column A.
                wsLastColumn = .Cells(1, .Columns.Count).End(xlToLeft).Column '<- Find the last column of row 1.
                Set rngCopy = .Range(Cells(1, 1), Cells(wsLastRow, wsLastColumn)) '<- Create the range to be copy.
                rngCopy.Copy

            End With

            With ThisWorkbook.Worksheets("YEARLY REPORT")
                yrLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row '<- Find last row of column A.
                .Range("A" & yrLastRow + 1).PasteSpecial xlPasteValues
            End With

        End If

        Application.CutCopyMode = False

    Next ws

End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55585098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档