私の目標は、最初のDBシートに存在しないデータを見つけて、2番目のDBシートにコピーすることです。最初のDBにはすべてのデータが含まれていますが、2番目のDBシートには特定のフィールド(列)のみが必要です。 (最初のDBシートから)行をコピーし、唯一の特定のフィールド(つまり、列A、D、G、I、& K)を貼り付けるための「きれいな」方法はありません。フィールド/列の間にスペースが残らないようにします。 (すなわち、最初のシート上の列A、D、G、I、&Kは、列A、B、C、D、&Eとなる)。私は別の一時的なシートを使ってこれを行う方法を知っていると思うが、私はこの問題に近づくには "クリーン"な方法がなければならないと考えた。 Any and Allヘルプは高く評価されています。 このソリューションは動作しません:1つのシートから行をコピーして、特定の列のみを新しいシートに貼り付けるにはどうすればいいですか?
Sub columnCopy()
Dim sh1 As Worksheet
Set sh1 = Sheets("Sheet4")
lc = sh1.Cells(1, Columns.Count).End(xlToLeft).Column ' Last Column
lr = sh1.Cells(sh1.Rows.Count, "A").End(xlUp).Row ' Last row
For I = 2 To lr
'Trying to only copy columns "A" and "E" from Sheet4
sh1.Range(sh1.Cells(I, 1), sh1.Cells(I, 5)).Copy
'and paste data into Cells "A" and "B" on Sheet5
Sheets("Sheet5").Cells(I, 1).PasteSpecial Paste:=xlPasteValues
Next I
'MsgBox I
End Sub
おそらくまだだけではなく、列A、B、C、D、&はEが新しいシートにコピーされますことに変わりはない:ここVBA: loop to copy certain columns from main sheet, create a new sheet, and paste
は私の修正コードがあります予想通り、列A & E。助けてください。
:サブSpacedCopyPasteを() レンジ( "A2、E2")が Selection.Copy シート( "のSheet5")を選択」(A4を 範囲を選択します。 ").Select ActiveSheet.Paste End Sub –
値を入力したい場合は、範囲を互いに等しく設定するだけです:' Range([destination range])。 ])。値。 – BruceWayne