複数の列間で複数の行を 1 つに結合する VBA はありますか?

複数の列間で複数の行を 1 つに結合する VBA はありますか?

長い投稿で申し訳ありませんが、できるだけ多くの情報を含めたいと思いました。オンラインでいくつかの情報を見つけることができましたが、変更するには助けが必要です。以下は、結合する必要があるデータの例です。

この表を結合する必要があります:

パート1 パート2 満杯 報告 HROトレイン タイムマネージャー 出席者 予定 クライアント名 クライアントID クライアント移行ツール スーパーバイザー
2021年1月7日 2021年1月7日 2021年1月7日 ジェーン・ドウ 2/2/21 ジェーン・ドゥ株式会社 123456789 サラ スーザン
2021年1月8日 2021年1月8日 2021年1月8日 ジェーン・ドウ 2/2/21 ジェーン・ドゥ株式会社 123456789 サラ スーザン
2021年1月7日 2021年1月7日 2021年1月7日 ジョン・ディー 2021年3月1日 ジョン・ディー 321654987 ラリー ボブ
2021年1月8日 2021年1月8日 2021年1月8日 ジョン・ディー 2021年3月1日 ジョン・ディー 321654987 ラリー ボブ

この表に:

パート1 パート2 満杯 報告 HROトレイン タイムマネージャー 出席者 予定 クライアント名 クライアントID クライアント移行ツール スーパーバイザー
2021年1月7日 2021年1月7日 2021年1月8日 2021年1月8日 2021年1月7日 2021年1月8日 ジェーン・ドウ 2/2/21 ジェーン・ドゥ株式会社 123456789 サラ スーザン
21年1月7日、21年1月8日 21年1月7日、21年1月8日 2021年1月7日 2021年1月8日 ジョン・ディー 2021年3月1日 ジョン・ディー 321654987 ラリー ボブ

私は見つけたこのスレッドこのタイプの結合を行う VBA を作成する方法については、私のデータが少し異なっており、コードをどのように変更すれば実現できるかわかりません。以下のコードをコピーして貼り付けます。

'Dim 2 search cells
Dim BlankCell As Range
Dim IdCell As Range
'Find Last row and column
Dim lRow As Long
lRow = Range("A1").End(xlDown).Row
Dim lColumn As Long
lColumn = Range("A1").End(xlToRight).Column
'Set the area to consider
Dim Rng As Range
Set Rng = Range(Cells(1, 1), Cells(lRow, lColumn))
'Select​ each blank cell in area
Rng.Select
Selection.SpecialCells(xlCellTypeBlanks).Select
'And replace it with appropriate value
For Each BlankCell In Selection
For Each IdCell In Range(Cells(1, 1), Cells(lRow, 1))
If (IdCell.Value = Cells(BlankCell.Row, 1).Value And Cells(IdCell.Row, BlankCell.Column) <> "") Then
BlankCell = Cells(IdCell.Row, BlankCell.Column).Value
End If
Next IdCell
Next BlankCell
'Then​ erase duplicate lines
Rng.Select
ActiveSheet.Range(Cells(1, 1), Cells(lRow, lColumn)).RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6), _
Header:=xlYes

この VBA では、列 A を一致させる識別子として使用して行を統合します。ただし、VBA で列 G を識別子として一致させる必要があり、列を変更するためにどこを編集すればよいかわかりません。また、すべての日付を ";" 区切り文字で結合する必要がある場合、この VBA ではその状況に対応できないと思います。これを正常に実行するには、他に何を追加する必要がありますか? 本当にありがとうございます!

関連情報