獨特的價值觀,我有一個簡單的Excel/VBA問題:過濾列表框只包括在Excel
我想創造就是我想告訴我有數據的唯一值(單選)列表框在不同的工作表上。
到目前爲止,我有這樣的一個列表框中:
而且數據的命名選擇我想表明:
我使用的公式是這樣和用它作爲ListBox的輸入。
公式:= BEREICH.VERSCHIEBEN(TopicData $ C $ 1; 1; 0; ANZAHL2(TopicData $ C:!$ C)-1; 1)
現在的問題是:我怎樣才能讓列表框顯示唯一的值?我對vba很熟悉,所以包含這個的解決方案將會完全正常。事實上,我已經嘗試刪除vba中的重複條目,只要ListBox發生更改,但由於某些原因,似乎沒有任何工作。
這裏是我的VBA腳本,我試圖解決這個問題:
unfortunatley我總是得到一個「錯誤400」時,我對特里結構呼籲列表框的removeItem。
' ...
' filter listbox content so only unique values remain
Dim i As Integer
' find duplicates
Dim inList As New Collection
Dim indexesToRemove As New Collection
For i = availableTopicsListBox.ListCount - 1 To 1 Step -1
If CollectionContains(inList, availableTopicsListBox.List(i)) Then
' if it is already in the list, remove it
indexesToRemove.Add i
Else
inList.Add availableTopicsListBox.List(i)
End If
Next i
' remove duplicates
Dim j As Integer
For j = indexesToRemove.count To 1 Step -1
availableTopicsListBox.RemoveItem (indexesToRemove(j))
Next j
'...
您應該逐步通過主題列,並有一個包含唯一值的數組。然後檢查Topic列中的單元格是否在數組中,如果沒有添加它,則檢查下一行。 – Luuklag
嘗試使用oledb連接到sam eworkbook ...編寫一個查詢以獲取不同的值並將它們複製到表單中的一個範圍並對該範圍進行refference .....請確保將該範圍作爲列表對象... 。所以值得到更新....無論是唯一值的數量 –
你應該使用一個'Dictionary'來存儲你的範圍內的所有唯一鍵(我認爲列C:C),然後只添加唯一的鍵到你的'availableTopicsListBox' –