返回列表 上一主題 發帖

[發問] 利用下拉式選單選取資料,並進行進階篩選

回復 2# Hsieh

哈囉Hsieh大,
我在練習此帖的過程發現一些問題。
當中這段代碼想要請教您 :
  1. Private Sub UserForm_Initialize()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. With 工作表1
  4.    For Each a In .Range(.[D2], .[D2].End(xlDown))
  5.       d(a.Text) = ""
  6.    Next
  7. End With
  8. ComboBox1.List = d.keys
  9. End Sub
複製代碼
我懂這一段的用意是要將「要查詢的不重複項目」帶進下拉式選單的選項項目;
但是在 For Each a In .Range(.[D2], .[D2].End(xlDown))和Next中的d(a.Text) = ""
我不太了解為何要將所有項目的文字變成"",這段撰寫的緣由是來自何處?
還勞煩您幫忙解惑。

TOP

本帖最後由 准提部林 於 2019-4-13 10:54 編輯

回復 11# ChuckBucket

字典檔 >> 利用"KEY"值, 帶一個"ITEM"
d(a.Text) = ""
a.Text 是 KEY
"" 是 ITEM, 這ITEM可為任何型態資料

因只取不重覆, 只用得到KEY, 不做其它處理,
所以ITEM用""空字符即可(也可用其它字符或數字)
d(a.Text) = "A"
d(a.Text) = 1
都是可以達到目的, 不過在這個需求上,"A"或1都沒有意義
=============================
d(a.Text) = d(a.Text) + 1 這個就可以累計 a.Text 的次數
其它用途可多看幾個範例帖吧!!!

TOP

回復 12# 准提部林
Hi 准大,
感謝你的回覆。
所以Hsieh大在Private sub�媕YFor each�媕Y的寫法,d(a.text) = ""其實等同於d.add  a , ""嗎?
我能這樣理解嗎?

TOP

回復 13# ChuckBucket


是的~~

TOP

        靜思自在 : 修行要繫緣修心,藉事練心,隨處養心。
返回列表 上一主題