列からの一意のテキスト値のみをコンボボックスに入力しようとしています。列の値が空の場合 (つまり "")、左隣の列から値が取得されます (ただし、重複していないことを確認します)。
Userform モジュール内に Public Sub を埋め込んで、アイテムを重複なく追加しました。
Public Sub addIfUnique(CB As ComboBox, value As String)
If CB.ListCount = 0 Then GoTo doAdd
Dim i As Integer
For i = 0 To CB.ListCount - 1
If CB.List(i) = value Then Exit Sub
Next
doAdd:
CB.AddItem value
End Sub
ただし、サブを呼び出そうとすると、オブジェクトが必要であることがわかります。私がこれまでに得たものは次のとおりです。
Worksheets("Scrapers").Activate
Range("M9").Activate
Dim intX As Integer
Dim value As String
push_lt_cbo.Clear
Do Until ActiveCell.Offset(0, -1).value = 0
If ActiveCell.value = "" Then
value = ActiveCell.Offset(0, -1).Text
Call addIfUnique((push_lt_cbo), (value))
Else
value = ActiveCell.Text
Call addIfUnique((CB), (value))
End If
Loop
どんな助けでも大歓迎です!
LW