【问题标题】:Using Copy Destination and Paste Special to keep formatting使用复制目标和选择性粘贴来保持格式
【发布时间】:2012-12-28 03:16:57
【问题描述】:

这是我在复制单元格时需要将格式保留在目标工作簿中的代码行。我不确定如何将“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)

【问题讨论】:

  • 如果您知道目标范围的地址,那么您也可以这样做(例如)wbkVer.Worksheets("Metabuild").Range("A44:A2000").Value = wbkOut.Worksheets(1).Range("E44:E2000").Value

标签: excel vba


【解决方案1】:

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

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

【讨论】:

  • 我忘了添加 - 感谢您添加检查;我也添加了。 :)
猜你喜欢
  • 2016-02-20
  • 1970-01-01
  • 2021-09-27
  • 2018-02-16
  • 1970-01-01
  • 2013-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多