複数のExcelワークシートを1つのマスターワークシートに結合する作業を進めています。次のコードは、すべてのワークシートが同一の列を持っているときのために働く:Excel/VBA - さまざまなソース列を使用して、ワークシートの行と列を1つに結合します。
Sub CombineData()
Dim Sht As Worksheet
'This If will clear Master before combining
Worksheets("Master").Range("A2:ZZ9000").ClearContents
For Each Sht In ActiveWorkbook.Worksheets
If Sht.Name <> "Master" And Sht.Range("A2").Value <> "" Then
Sht.Select
LastRow = Range("A9000").End(xlUp).Row
Range("A2", Cells(LastRow, "ZZ")).Copy
Sheets("Master").Select
Range("A9000").End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Else
End If
Next Sht
End Sub
しかし、私は今、さらに一歩進み、列が記載されているすべてのcolunsを持っているマスターに、ソースワークシートと異なるときのワークシートをマージする必要があります。
This shows the layout of the worksheets I'm testing with, to keep things simple.
私は先の列にすべてのソースをマッピングのいずれかに開いている(例えば
-Source1、マスターに列A、列
-Source2、マスターに列B、列D
-Etc
または単にソースワークシートのすべての列とマスターを再 - I好ましいですn個のソース・ソース・ワークシートが変更されます。
Cheers-
あなたは何を試しましたか?また、注意するには、[.Select'/'.Activate']の使用を避けることが最善です(https://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel- vba) – BruceWayne