【问题标题】:Copy range from multiple worksheet to a single worksheet将范围从多个工作表复制到单个工作表
【发布时间】:2013-03-26 12:30:17
【问题描述】:

有人可以帮助使用 vba 代码将多个工作表(52 周)中的范围复制到同一工作簿中的摘要表中。每个工作表中的范围都相同。我希望将数据从第 1 周到第 52 周复制并粘贴到摘要工作表的 52 列中。

我在网上找到了这段代码:

Sub SummurizeSheets()
    Dim ws As Worksheet
    Application.ScreenUpdating = False
    Sheets("Summary").Activate
    For Each ws In Worksheets
        If ws.Name <> "Summary" Then
            ws.Range("F46:O47").Copy
            Worksheets("Summary").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial (xlPasteValues)
        End If
    Next ws
End Sub

【问题讨论】:

  • Sub SummurizeSheets() Dim ws As Worksheet Application.ScreenUpdating = False Sheets("Summary").Activate For Each ws In Worksheets If ws.Name "Summary" Then ws.Range("F46 :O47").Copy Worksheets("Summary").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial (xlPasteValues) End If Next ws End Sub
  • 运行此代码时遇到什么错误?
  • 嗨,我没有收到错误消息。它工作正常,但它将工作表中的所有范围复制到摘要表中的单个列中。我想要的是在单独的列中复制范围

标签: excel vba


【解决方案1】:

试试下面的代码。同时设置Application.ScreenUpdating = True

Sub SummurizeSheets()
    Dim ws As Worksheet
    Dim j As Integer, col As Integer

    Application.ScreenUpdating = False

    Sheets("Summary").Activate


    For Each ws In Worksheets
        If ws.Name <> "Summary" Then
            ws.Range("k3:k373").Copy

            col = Worksheets("Summary").Range("IV1").End(xlToLeft).Column + 1
            Worksheets("Summary").Cells(1, col).PasteSpecial xlPasteValues
            Application.CutCopyMode = False

        End If

    Next ws
    Columns(1).Delete
    Range("A1").Activate
    Application.ScreenUpdating = True
End Sub

【讨论】:

  • j As Integer 的定义是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-09
  • 1970-01-01
  • 2018-06-19
  • 2016-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多