1

これは、セルをコピーするときにコピー先のブックで書式設定を維持するために必要なコード行です。「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)
4

1 に答える 1

7

ベンは正しかった。彼がその方法を示していないので、私が説明します。

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

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

追加したいもう 1 つのことは、必要に応じて、コピーされた範囲の行数を処理するのに十分な行がシートの下部にあることを確認するためのチェックです。十分な行がない場合、コードはエラーをスローします。

これを行うには、コードは次のようになります。

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
于 2012-12-27T18:56:43.673 に答える