返回列表 上一主題 發帖

[發問] 先不重複篩選後,並自動設為下拉式選單

利用"定義名稱"動態下拉清單:
Xl0000170(三層下拉清單).rar (17.81 KB)

TOP

回復 3# iceandy6150


想用第三層選單, 往回推算前兩層相關聯文字, 再自動填入???
問題:第三層選單所對應的有兩個以上, 如何判斷屬于哪一個???

2樓給的是漸進式的動態選單, 選第一層後, 自動判斷第二層清單, 再至第三層,
越選越少, 也不須打字!!!

至于表1, 可預建1~200列驗證清單,
輸入完成-轉出後, 用CLEARCONTENTS清空內容, 即可繼續輸入新的資料,
幾行程式碼即可~~

=========================

TOP

1) 如果表2的C欄都是不重覆的, 那直接用這來設定第三層選單,
   又如果資料並不變動或變動少, 則可固定範圍定義名稱,
   若時有變動(重點:不重覆), 用動態定義名稱即可解決, 何須每次都要跑VBA迴圈!!!
   這樣用FIND就可定位找出前兩層資料~
2) 如果C欄是會重覆的, 那用第三層選單找對應的前兩層, 就不是那麼準確,
   何況如果C欄有幾百或上千行, 每次都要從長又長的選單中去選取所要的, 滑鼠滑上滑下__並不太聰明,也容易選錯重來;
   再則, 幾百上千行的內容用字典檔擠成字串, 再塞進清單中, 會不會超過文字長度限制???

TOP

本帖最後由 准提部林 於 2020-5-22 15:42 編輯

回復 13# iceandy6150


比如,A選到3大類,B選3中類,C卻選去1小類---(這樣帳的科目就錯了)  
_2樓的檔案, 不會有這問題
_未選取第一層, 不會准許選第二層; 選了第一層, 自動幫你篩選出符合第一層的清單,
續選第二層(若第二層空白, 可不用選)後, 再過瀘出第三層, 可以說下拉清單會越來越少,
絕對不會有錯選的問題~~
_至于"清單"來源表, 可不限制往下新增, 只要將公式下拉到底, 會自動判斷清單範圍, 這部份還不用VBA

工作表一用到的VBA:
1) 清空輸入資料(若已將原有內容貼至別處), 並重置下拉清單50行

如果第三層清單不重覆(附檔中有兩個"電費", 修改)
Xl0000170(三層下拉清單)V2.rar (18.12 KB)

TOP

回復 21# iceandy6150


1)、為什麼IF的後面都不需要加上 END IF而且除錯都沒問題?
__if 條件 then 結果, 寫成一行, 就不須加 end if

2)、Target指的是滑鼠點到的任何一個儲存格嗎?
__就是selection中的range物件, 可以是單格, 選續範圍, 或不規則選取區塊

3)、我測試了一個小程式,但是只動了一次,就沒動作了,不曉得錯在哪裡?
__Application.EnableEvents = False
  "觸發事件"--關閉, 這是為了避免"重復觸發"造成無限循環,
  程式底下應再多一行:
  Application.EnableEvents = True
  (恢復觸發) 否則下次就沒作用!

4)、Set xA = .Cells(1, -1).Resize(1, 2) 這邊.Resize是什麼功能?
    以一個range定點, 向右或向下"擴展"成一個範圍,
  例如: range("a1").resize(4,3)  ---> A4:C4


=============================

TOP

        靜思自在 : 手心向下是助人,手心向上是求人;助人快樂,求人痛苦。
返回列表 上一主題