複数の列に、このマクロを含む新しいブックにコピーしたいデータがあるワークブックが2つあります。基本的には、現在のワークブック「z」を開いてマクロを実行し、他の2つの既存のワークブックからデータを移動/コピーできるようにします。Excel VBA - 複数の列を2つのブックから1つのブックにコピーする
私はここでさまざまなアイデアを探しています。私はこのコードを実行すると「実行時エラー1004」になってしまいました。エラーは、最初のy.Range行で発生し、私はまだ理由を把握する必要があります。
「x」ブックから「y」ではなくデータを正常に取得できました。
私はVBAに新しいので、どんな助けでも大歓迎です。
おかげで、
Sub SellPrice()
Dim x As Worksheet, y As Worksheet, z As Worksheet, LastRow&
Workbooks.Open ("C:\Users\tsmith\Desktop\SellPrice\PRODUCT.XLS")
Workbooks.Open ("C:\Users\tsmith\Desktop\SellPrice\GrossProfit.xls")
Set x = Workbooks("PRODUCT.XLS").Worksheets("ProductFile")
Set y = Workbooks("GrossProfit.xls").Worksheets("Sellprice")
Set z = Workbooks("SellPriceMacro.xlsm").Worksheets("Sheet1")
LastRow = x.Cells.SpecialCells(xlCellTypeLastCell).Row
x.Range("B4:B" & LastRow).Copy z.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
x.Range("C4:C" & LastRow).Copy z.Cells(Rows.Count, "B").End(xlUp).Offset(1, 0)
x.Range("K4:K" & LastRow).Copy z.Cells(Rows.Count, "C").End(xlUp).Offset(1, 0)
LastRow = y.Cells.SpecialCells(xlCellTypeLastCell).Row
y.Range("B2:B" & LastRow).Copy z.Cells(Rows.Count, "E").End(x1Up).Offset(1, 0)
y.Range("C2:C" & LastRow).Copy z.Cells(Rows.Count, "F").End(x1Up).Offset(1, 0)
y.Range("D2:D" & LastRow).Copy z.Cells(Rows.Count, "G").End(x1Up).Offset(1, 0)
y.Range("H2:H" & LastRow).Copy z.Cells(Rows.Count, "H").End(x1Up).Offset(1, 0)
Application.CutCopyMode = False
End Sub
私は間違ってあなたの応答を読んでいる場合を除き、コードは私がレンジの前に、ブックを入れているので、 'y.Range' –
が、これは' Cells'、 '行を取り除くためにクリーンアップすることができ動作するはずです。カウント?私はこれを実行しようとしても、すべてのブック "x"行を削除しようとしましたが、それでも同じエラーが発生します。多分私はWorkbook "y"を考えていますか? –
@ T.SmithはSOへのコピー/貼り付けだけですか?また、コードに '.end(x1up)'があります... 'l'ではなく' '1 'であることに注意してください。 – BruceWayne