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

时间:2015-01-15 16:52:10

标签: excel vba excel-vba

我有一本工作簿,其中包含油井的石油生产信息。每口井都有自己的工作表。我想将每口井的累计油气产量复制并粘贴到工作簿末尾的预先格式化的工作表中,这样我就可以得到累计产油量的清单。

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

我知道这不是一个独特的问题,而且之前已经问过这个问题。我已经看过这个问题的先前答案,并试图蚕食代码,但失败了。我知道我需要使用粘贴特殊功能,但我似乎无法弄清楚如何使其工作。

我正在复制范围AB3:AE3。我试图复制和粘贴的工作表名称是SmtProd。我想将值从第2行开始复制到SmtProd表中(第1行有标题)。

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

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

任何帮助将不胜感激

谢谢,

乔赛亚

1 个答案:

答案 0 :(得分:0)

尝试一下:

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

请注意双重粘贴。