У меня есть лист Excel, который содержит два столбца с именами ProductName и CountryCode.i хотел объединить все CountryCode, разделенные / на основе соответствующих значений в столбце «ProductName», и мой вывод будет получен в отдельном столбце с именем « FinalResults. Обратите внимание, что я использовал функцию удаления дубликатов, чтобы получить уникальные значения в столбце C из столбца A.

Я попробовал приведенный ниже код VBA с помощью stackoverflow и получил результаты.
Sub ProductCountry()
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet2")
Dim FoundCell As Range, SearchRange As Range, Names As Range, SearchCell As Range
Dim MyString As String, i As Long
Set SearchRange = ws.Range("A2:A" & ws.Range("A" & ws.Rows.Count).End(xlUp).Row)
SearchRange.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=ws.Range("C2"), Unique:=True
ws.Range("C2").Delete Shift:=xlShiftUp
Set Names = ws.Range("C2:C" & ws.Range("C" & ws.Rows.Count).End(xlUp).Row)
For Each SearchCell In Names
Set FoundCell = SearchRange.Find(SearchCell)
For i = 1 To Application.WorksheetFunction.CountIf(SearchRange, SearchCell)
MyString = MyString & FoundCell.Offset(, 1) & "/"
Set FoundCell = SearchRange.FindNext(FoundCell)
Next i
SearchCell.Offset(, 1) = Left(MyString, Len(MyString) - 1)
MyString = ""
Next SearchCell
End Sub
Кажется, он работает нормально, за исключением первого продукта PRO1. Вы могли видеть, что он не соединял коды по порядку, пропустил код страны US и вместо этого взял код страны SG два раза.

Может кто-нибудь помочь, что пошло не так в этом скрипте, и я также иногда получаю ошибку диапазона, если я использую этот же код для больших данных.