VBA宏从列范围粘贴到多个范围

时间:2018-04-17 11:03:35

标签: vba excel-vba paste excel

我正在尝试从F列的范围中复制公式,并将每个列粘贴到范围中的最后一列。

粘贴到范围时,复制单元格仅粘贴到F列而不是选定的范围。

代码:

Dim lastrow As Long
Dim lastcol As Long
Dim i As Long
Range("f2:f" & lastrow).Select
Selection.Copy
lastcol = Cells(6, Columns.Count).End(xlToLeft).Column
Range("f2:f" & lastrow).Select
With ActiveCell
    .Resize(lastrow, lastcol - 6).Select
End With

Selection.PasteSpecial xlPasteFormulas

1 个答案:

答案 0 :(得分:1)

首先,您lastrow尚未设定!您必须为其分配一个值,如下所示:

lastrow = Cells(Rows.Count, 6).End(xlUp).Row

这将找到F列中的最后一行。

现在,只使用Range("f2:f" & lastrow).Copy来避免Select建议)。

要将其粘贴到最后一列,您必须这样做:

Range(Cells(2, lastcol), Cells(lastrow, lastcol).PasteSpecial xlPasteFormulas

总而言之,请改用此代码:

Option Explicit
Sub CopyRange()
    'use camel case or underscores for better readability
    Dim lastRow As Long, lastCol As Long
    lastRow = Cells(Rows.Count, 6).End(xlUp).Row
    'I changed the row here to second row (instead of 6th)
    lastCol = Cells(2, Columns.Count).End(xlToLeft).Column

    Range("f2:f" & lastrow).Copy
    Range(Cells(2, lastCol), Cells(lastRow, lastCol).PasteSpecial xlPasteFormulas
End Sub

附加说明:我将其打包在Sub中并使用Option Explicit,建议您避免运行时错误。