編集: これは質問「どのように私は範囲をコピーしない」の一般的なソリューションです。答えは - ソースとターゲットを宣言し、ターゲットにソースをコピーします。
Option Explicit
Public Sub TestMe()
Dim rngSource As Range
Dim rngTarget As Range
With Worksheets(1)
Set rngSource = .Range(.Cells(2, "A"), .Cells(100, "B"))
Set rngTarget = .Range(.Cells(2, "C"), .Cells(100, "D"))
rngSource.Copy
rngTarget.PasteSpecial xlPasteAll
Application.CutCopyMode = False
End With
End Sub
あなただけの列全体をコピーしたい場合は、このような何かしてみてください:
Sub TestMe()
Range(Columns(5), Columns(6)).Copy
Range(Columns(7), Columns(8)).PasteSpecial xlPasteAll
Application.CutCopyMode = False
End Sub
をそれが列をコピーします5〜6から7〜8列までです。もちろん、数値の代わりに変数を入れることができます。
そして、これは変数で、もう少し洗練されている:
Sub TestMe()
Dim lngCopyColumn As Long: lngCopyColumn = 2
Dim lngPasteColumn As Long: lngPasteColumn = 10
Dim lngLenC As Long: lngLenC = 3
Range(Columns(lngCopyColumn), Columns(lngCopyColumn + lngLenC)).Copy
Range(Columns(lngPasteColumn), Columns(lngPasteColumn + lngLenC)).PasteSpecial xlPasteAll
Application.CutCopyMode = False
End Sub
あなたはLngLenCで何を意味するのですか?それは総行数ですか? k、clear – MyName
@MyName - 範囲内の合計列。両方の範囲で同じにする必要があります。 – Vityata
ありがとうございます。唯一のことは、列全体を選択することです。私はそれを1番目のセル(セル2から)から終わり(xlDown)に1つオフセットする必要があります。私はちょっとしたおとぎ話に夢中になりました。このコマンドをどこに送る必要があるかを指定できますか? 'WsStam.Range(列(iKolomnrCorpID)、列(iKolomnrCorpID))。コピー' – MyName