2017-10-18 9 views
0

申し訳ありませんが、私は実際これを取得するのに近いですが、もっとうまくいくようにしようとしています。私は列2のようになるまで行2の書式をコピーしたい。データは列Hまでしか送られないので、私のコードは列2まで行2をコピーする。しかし貼り付けに行くと、行1のほかにシート全体がハイライト表示される。フォーマット全体をコピーするように見えます。実際には問題ではありませんが、将来の参照用に必要な行と列にのみ貼り付ける方法を知っています。私はそれが基本的にデータを持っている細胞に行きたいだけです。事前に助けてくれてありがとう!行から複数​​の行へのVBAコピーの書式設定

Range("A2", Cells(2, Columns.Count).End(xlToLeft)).COPY 
    Range("A2", Cells(Range("A" & Rows.Count).End(xlDown).Row)).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ 
    SkipBlanks:=False, Transpose:=False 
    Application.CutCopyMode = False 
+0

Rows.Countは、シート内の行の合計数ではなく、*占有*行の数です。 –

+0

私はそれがxlUpかxlDownがしたものだと思ったのですか?最後に占領されたセルなどを探しますか?私は自分のコードを発見し、それはダウンの代わりにxlUpを使用していましたが、それはTOP 2の行にコピーするだけでした。私はそれをxlDownに変更しました。 – Robillard

+0

シートの一番下から「ダウン」します。 –

答えて

1

これを試してみてください:

Dim rngCopy As Range, rngPaste As Range 


With ActiveSheet 
    Set rngCopy = .Range(.Range("A2"), .Cells(2, Columns.Count).End(xlToLeft)) 

    Set rngPaste = .Range(.Range("A2"), _ 
         .Cells(Rows.Count, 1).End(xlUp)).Resize(, rngCopy.Columns.Count) 

End With 

rngCopy.Copy 
rngPaste.PasteSpecial Paste:=xlPasteFormats 
Application.CutCopyMode = False 
+0

ありがとう!それは完全に機能します。これと私のコードの主な違いは何ですか?どの列に変更するかはresizeステートメントに入れただけですか?私は物事の仕組みを理解しようとしています。ありがとう! – Robillard

+0

貼り付けの対象となる範囲の周りの変更だけです。また、Range/Cellsを使用するときに必ずワークシートを指定することをお勧めします。そうしないと、アクティブなシートになることがあります。コードが脆くなり、奇妙なことをする傾向があります。 –

+0

ええ、私はまだそれを修正しています。助けてくれてありがとう! – Robillard

関連する問題