使用“复制目标”和“选择性粘贴”保持格式

时间:2012-12-27 17:52:54

标签: excel vba

这是我需要的代码行,在复制单元格时,将格式保留在目标工作簿中。我不确定如何将“PasteSpecial Paste:= xlPasteValues”合并到其中。

wbkOut.Worksheets(1).Range("E44:E2000").Copy Destination:=wbkVer.Worksheets("Metabuild").Range("A" & wbkVer.Worksheets("Metabuild").Range("A65536").End(xlUp).Row + 1)

1 个答案:

答案 0 :(得分:7)

本是对的。既然他没有告诉你怎么样,我会的。

wbkOut.Worksheets(1).Range("E44:E2000").Copy 

With wbkVer.Worksheets("Metabuild")
  .Range("A" & .Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteValues
End With

您可能想要添加的另一件事是检查以确保工作表底部有足够的行来处理复制范围的行数(如果您可能需要)。如果没有足够的行,代码将抛出错误。

为此,代码看起来像这样:

Option Explicit

Dim rngCopy as Range, lngCopy as Long

Set rngCopy = wkbOut.Worksheets(1).Range("E44:E2000")
lngCopy = rngCopy.Rows
rngCopy.Copy

With wbkVer.Worksheets("Metabuild")

    Dim rngCheck as Range
    Set rngCheck = .Range(.Range("A" & .Rows.Count).End(xlup).Offset(1),.Range("A" & .Rows.Count)

    If rngCheck.Rows >= lngCopy Then

       .Range("A" & .Rows.Count).End(xluP).Offset(1).PasteSpecial xlPasteValues

    Else

       Msgbox "Not enough space!"

   End If

End With