从每个工作表中复制并粘贴一个范围

Copy and paste a range from each worksheet

我有一个工作簿,其中包含油井的石油生产信息。每口井都有自己的 worksheet.I 想要将每口井的累计石油和天然气产量复制并粘贴到工作簿末尾的预制工作中 sheet 这样我就可以获得累计石油产量的列表.

正常的复制和粘贴 vba 对我不起作用,因为我要粘贴的是一个计算值。每当我执行当前代码时,都会收到 #REF 错误。

我知道这不是一个独特的问题,之前已经有人在这里问过这个问题。不过,我已经看过这个问题的先前答案,并试图蚕食代码,但都失败了。我知道我需要使用粘贴特殊功能,但我似乎也不知道如何让它工作。

我正在复制范围 AB3:AE3。我试图复制并粘贴到的 sheet 名称是 Sm​​tProd。我希望从第 2 行开始将值复制到 SmtProd sheet(第 1 行有 headers)。

下面是我当前的复制粘贴代码

Range("AB3:AE3").Copy
  Selection.Copy Sheets("SmtProd").Range("A" & Rows.Count).End(3)(2)

如有任何帮助,我们将不胜感激

谢谢,

约西亚

试一试:

Sub MakeSummary()
    Dim sh As Worksheet, N As Long
    Dim i As Long, M As Long
    N = Sheets.Count - 1
    M = 2
    For i = 1 To N
        Sheets(i).Range("AB3:AE3").Copy
        Sheets("SmtProd").Range("A" & M).PasteSpecial (xlValues)
        Sheets("SmtProd").Range("A" & M).PasteSpecial (xlFormats)
        M = M + 1
    Next i
End Sub

注意双贴。