ワークブックに 2 つのシートがあります。どちらも同じ列ですが、順序が異なります。あるシートから別のシートにすべての行をコピーする必要があります。
一致する列名の下にデータを正確にコピーする方法はありますか? どちらのシートにも CZ までの列があります。
ワークブックに 2 つのシートがあります。どちらも同じ列ですが、順序が異なります。あるシートから別のシートにすべての行をコピーする必要があります。
一致する列名の下にデータを正確にコピーする方法はありますか? どちらのシートにも CZ までの列があります。
VB Editor Menu / Tools / Referencesを実行し、MicrosoftScriptingRuntimeの横にあるチェックボックスをオンにする必要があります。これにより、キー付きハッシュオブジェクト(キーと値のペア)であるScripting.Dictionaryにアクセスできます。
Sub CopyByCol()
Dim lCol As Long, lCols As Long, sCol As String, lRows As Long
Dim dictCol As New Scripting.Dictionary
Dim rFrom As Range, rTo As Range
Set rFrom = Sheet1.Range("A1")
Set rTo = Sheet2.Range("A1")
' Store hash of where column names occur in target sheet, keyed by Col name
lCols = rFrom.Offset(0, 255).End(xlToLeft).Column - rFrom.Column
For lCol = 0 To lCols
sCol = rTo.Offset(0, lCol).Value
dictCol.Add sCol, lCol
Next
' Get key column name from From sheet, and write to correct col in To sheet
For lCol = 0 To lCols
sCol = rFrom.Offset(0, lCol).Value
lRows = rFrom.Offset(65000, lCol).End(xlUp).Row - rFrom.Row
Range(rFrom.Offset(1, lCol), rFrom.Offset(lRows, lCol)).Copy Destination:=rTo.Offset(1, dictCol(sCol))
Next
End Sub