簡體   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