あなた if文のみコピー日コラムので、あなただけの、一つの列(「日付」欄)をコピーしています。各列のタイトルを格納することにより、これを行うための別の方法があります
Set MR = Range("A1:e1")
For Each cell In MR
If cell.Value = "Date" Then
cell.EntireColumn.Copy
End If
If cell.Value = "Name" Then '<- Add these for each column title
cell.EntireColumn.Copy
End If
If cell.Value = "ID" Then
cell.EntireColumn.Copy
End If
If cell.Value = "Amount" Then
cell.EntireColumn.Copy
End If
Next cell
:あなたの現在の方法を継続することで、あなたはそうのようなそれらの列のための文を書くことでRange("A1:e1")
内のデータの残りの列をコピーすることができます配列をループして各列をコピーすることにより、コードを短くし、より柔軟に書くことができます。配列内の列タイトルのみをループすることは、列範囲の各セルを検索するよりもはるかに高速です。カラムタイトルでループ
が動作するように詳細で、このような何かを行くだろう:
Dim Sh2Cell As Range
Dim Sh3Cell As Range
Dim Sh2Title As Range
Dim Sh3Title As Range
Set Sh2Title = Sheet2.Range("Title Range")
Set Sh3Title = Sheet3.Range("Title Range")
For Each Sh2Cell In Sh2Title
For Each Sh3Cell In Sh3Title
If Sh2Cell = Sh3Cell Then
'Copy column'
End If
Next
Next
こんにちは、これはこれを行う別の方法です、素晴らしい!ありがとう、あなたたちは素晴らしいです! – robin