У меня есть код словаря сценариев, который удаляет аналогичные данные.Код удаляет данные, которые являются почти дубликатами, которые я не хочу.
У меня есть данные в этой форме:
USA Test Green
USA Test Blue
India Test Red
India Test White
Я хочу преобразовать данные в эту форму
USA:
Test Green
Test Blue
India:
Test Red
Test White
Однако я получаю эти результаты с моим текущимкод
USA:
Test Green
Test Blue
India:
Test Red
'<---- missing last observation
Я почти уверен, что это происходит, потому что у меня есть
If Not InStr(1, countrydict(country), data) > 0
в моем коде, и я попытался удалить несколько частей моего кода, но я не былв состоянии заставить это работать.
Мой код следующий
With ActiveSheet
For iter = 2 To lastrow
country = Trim(.Cells(iter, 1).Value)
data = Trim(.Cells(iter, 2).Value)
If countrydict.Exists(country) Then
If Not InStr(1, countrydict(country), data) > 0 Then ' <---- This is most likely where I have gone wrong
countrydict(country) = countrydict(country) & "|" & data ' an array would work but we can instr a string
End If
Else
countrydict.Add country, data
End If
Next
iter = 2
For Each key In countrydict
.Cells(iter, 1).Value = key & ":"
.Cells(iter, 1).Interior.Color = RGB(204, 219, 235)
.Cells(iter, 1).Font.Size = 11
.Cells(iter, 1).Font.FontStyle = "Arial"
.Cells(iter, 1).Font.Bold = True
iter = iter + 1
For diter = 0 To UBound(Split(countrydict(key), "|"))
.Cells(iter, 1).Value = Split(countrydict(key), "|")(diter)
.Cells(iter, 1).Font.Size = 9
.Cells(iter, 1).Font.FontStyle = "Arial"
iter = iter + 1
Next
Next
.Columns("B").Clear
End With
Как всегда, помощь очень ценится.