Вместо этого кода
For K = 1 To N
If Cells(K + 1, 9).Value > 19 Then
ComboBox1.AddItem Sheets("Główne").Cells(K + 1, 12).Value
End If
Next K
Используйте этот код - он устраняет дубликаты перед заполнением ComboBox
Dim xList As String, xVal As String
' The following populates the ComboBox with Unique Values - No Duplicates
xList = ""
' We are using the colon character ":" as a separator
' You may wish to use something else
For K = 1 To N
xVal = Cells(K + 1, 9).Value
If xVal > 19 Then
If InStr(1, xList, ":" & xVal, vbTextCompare) = 0 Then
xList = xList & ":" & xVal
End If
End If
Next K
xList = Mid(xList, 2) ' Remove the leading : character
ThisWorkbook.Sheets("Glówne").ComboBox1.List = Split(xList, ":")
' Done
Затем вы можете удалить весь существующий код для удаления дубликатов изComboBox .... Все последующее можно удалить
'############### problem is somewhere below ##############'
For S = 2 To N
counter = 1
For iteracjalista = 0 To ComboBox1.ListCount - 1
If ComboBox1.Column(0, iteracjalista) = Sheets("Główne").Cells(S + 1, 12).Value Then
If Sheets("Główne").Cells(S + 1, 9).Value > counter Then
ComboBox1.RemoveItem 1
counter = counter + 1
End If
End If
Next iteracjalista
Next S