VBA 用于将多行合并为多列中的一行吗?

VBA 用于将多行合并为多列中的一行吗?

我很抱歉发了这么长的帖子,但我想包含尽可能多的信息。我在网上找到了一些信息,但我需要帮助修改。下面是我需要合并的数据示例:

我需要合并此表:

第1部分 第2部分 满的 报告 HRO列车 时间管理器 出席者 已安排 客户名称 客户端 ID 客户端迁移器 导师
1/7/21 1/7/21 1/7/21 无名氏 2/2/21 Jane Doe 公司 123456789 莎拉 苏珊
1/8/21 1/8/21 1/8/21 无名氏 2/2/21 Jane Doe 公司 123456789 莎拉 苏珊
1/7/21 1/7/21 1/7/21 约翰·迪 3/1/21 约翰·迪 321654987 拉里 鲍勃
1/8/21 1/8/21 1/8/21 约翰·迪 3/1/21 约翰·迪 321654987 拉里 鲍勃

进入此表:

第1部分 第2部分 满的 报告 HRO列车 时间管理器 出席者 已安排 客户名称 客户端 ID 客户端迁移器 导师
1/7/21 1/7/21 1/8/21 1/8/21 1/7/21 1/8/21 无名氏 2/2/21 Jane Doe 公司 123456789 莎拉 苏珊
1/7/21;1/8/21 1/7/21;1/8/21 1/7/21 1/8/21 约翰·迪 3/1/21 约翰·迪 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 无法解决这种情况。我还需要添加什么才能成功实现这一点?非常感谢!

相关内容