繁体   English   中英

excel 2007从多个工作表复制相同的范围并粘贴到当前工作表

[英]excel 2007 Copy the same range from multiple sheets and paste to current sheet

vba的新手,我到处都看过,尝试了一些发布的宏并为我修改了它们,但没有什么能完美完成,我对此感到沮丧。 我需要从多个工作表中复制一定范围的值,并将这些范围粘贴到一张工作表中。 第一张纸(总计)将具有宏(作为按钮)。 在工作表1之后的每个工作表都代表一个雇员,因此每个工作表的名称就是他们的名字。 随着员工的来回,工作表的数量会不时变化。 我需要复制的范围对于所有员工都是相同的(N5:V400)。 尽管包含该值的行的数量将因员工而异。 我还需要在每个工作表(单元格Q2)中复制员工的姓氏,并将其粘贴为总计表中每一行的开头单元格。

因此,当宏运行时,每个员工表中的单元格Q2(Name)和范围N5:V500中的任何值都将粘贴到总计表范围A3:J5000中(有两个标题行)。 该名称需要粘贴到每个员工的每一行的第一个单元格中。

我确定这是一个简单的代码,但是我当然再没有资格说。 感谢所有能提供帮助的人。
在此处输入图片说明

在这里,尝试一下:

经过测试:

Option Explicit
Sub test()

Dim ws As Worksheet, wsTotals As Worksheet
Dim lrow As Long

Set wsTotals = ThisWorkbook.Sheets("Totals")

For Each ws In ThisWorkbook.Worksheets
    If ws.Name <> "Totals" Then
        lrow = ws.Range("N" & Rows.Count).End(xlUp).Row
        If lrow > 4 Then
            ws.Range("N5:V" & lrow).Copy wsTotals.Range("B" & Rows.Count).End(xlUp).Offset(1, 0)
            ws.Range("Q2").Copy wsTotals.Range(wsTotals.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Address, _
                wsTotals.Range("A" & Rows.Count).End(xlUp).Offset(lrow - 4, 0).Address)
        End If
    End If
Next ws

End Sub

这应该做。
希望这对您有用。
它正在工作,但是没有时间做很多测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM