
Прошу прощения за длинный пост, но я хотел включить как можно больше информации. Мне удалось найти некоторую информацию в сети, но мне нужна помощь в ее изменении. Вот пример данных, которые мне нужно объединить ниже:
Мне нужно объединить эту таблицу:
Часть 1 | Часть 2 | Полный | Отчет | Поезд HRO | Менеджер времени | Участник | Запланированное | имя клиента | ID клиента | Клиентский Мигратор | Руководитель |
---|---|---|---|---|---|---|---|---|---|---|---|
07.01.21 | 07.01.21 | 07.01.21 | Джейн Доу | 2/2/21 | Джейн Доу Inc. | 123456789 | Сара | Сьюзен | |||
08.01.21 | 08.01.21 | 08.01.21 | Джейн Доу | 2/2/21 | Джейн Доу Inc. | 123456789 | Сара | Сьюзен | |||
07.01.21 | 07.01.21 | 07.01.21 | Джон Ди | 01.03.21 | Джон Ди | 321654987 | Ларри | Боб | |||
08.01.21 | 08.01.21 | 08.01.21 | Джон Ди | 01.03.21 | Джон Ди | 321654987 | Ларри | Боб |
В эту таблицу:
Часть 1 | Часть 2 | Полный | Отчет | Поезд HRO | Менеджер времени | Участник | Запланированное | имя клиента | ID клиента | Клиентский Мигратор | Руководитель |
---|---|---|---|---|---|---|---|---|---|---|---|
07.01.21 | 07.01.21 | 08.01.21 | 08.01.21 | 07.01.21 | 08.01.21 | Джейн Доу | 2/2/21 | Джейн Доу Inc. | 123456789 | Сара | Сьюзен |
07.01.21;08.01.21 | 07.01.21;08.01.21 | 07.01.21 | 08.01.21 | Джон Ди | 01.03.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 решает эту проблему. Что еще мне нужно добавить, чтобы это произошло успешно? Большое спасибо!