0
ワークブック間でデータをコピーする最も良い方法は何ですか?私は与えられたワークブックのデータを "thisworkbook"にコピーするためのコードを以下に書いています。しかし、私はいくつかの問題に直面しており、これを行う正しい方法ではないと思っていますか?"xlPasteColumnwidths"にエラーがあり、私のコードがより効率的になりますか?
は、私は正確に何をしたいですか:
私は大量のデータを持っているでブックを持って、私は「はThisWorkbook」にそのワークブックからコピーされ、いくつかの与えられた範囲をしたいです。これらは、コピーされた後、私は私が持っているどのようなデータ
間のすべての空白行を削除したい:私はxlPasteColumnwidths」でエラーが出るのはなぜApplication.ScreenUpdating = False
Dim wb As Workbook
Set wb = Workbooks.Open("path")
With wb
Sheets("sheet1").Range("B3:D107").Copy
End With
With ThisWorkbook.Sheets("sheet1").Range("A1")
.PasteSpecial xlPasteAll
.PasteSpecial xlPasteColumnWidths
End With
With wb
Sheets("sheet1").Range("B113:D117").Copy
End With
With ThisWorkbook.Sheets("sheet1").Range("A106")
.PasteSpecial xlPasteAll
.PasteSpecial xlPasteColumnWidths
End With
With wb
Sheets("sheet1").Range("F3:F107").Copy
End With
With ThisWorkbook.Sheets("sheet1").Range("D1")
.PasteSpecial xlPasteAll
.PasteSpecial xlPasteColumnWidths
End With
With wb
Sheets("sheet1").Range("F113:F117").Copy
End With
With ThisWorkbook.Sheets("sheet1").Range("D106")
.PasteSpecial xlPasteAll
.PasteSpecial xlPasteColumnWidths
End With
wb.Close False
On Error Resume Next
Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Application.ScreenUpdating = True
を、私はこのコードをより効率的に行うことができます
ご協力いただきありがとうございます。たぶん、すべての範囲を一度にコピーして一度に貼り付ける方法はありますか?あなたは定数としてコピーレンジを設定できますか?私は2回の使用で終わらなければならないでしょう – Mick17
残念ながら、不連続な範囲をコピーすることはできません。前に述べたように、使用範囲全体(B3〜F117)を非常に迅速かつ効率的な配列に入れ、必要な配列の部分を書き出すことができます。巨大なデータセットを知るのは良いことですが、セルへの読み書きは計算上非常に高価(遅い)ですが、ここでやりたがっていることはコードを書き直す価値がないため、おそらく数ミリ秒を節約します最も。 – Absinthe