返回列表 上一主題 發帖

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

回復 10# 准提部林


幾百上千行的內容用字典檔擠成字串, 再塞進清單中, 會不會超過文字長度限制???

回準大~原來字典的Key 與 item 都可以是 String,而String 最多可裝大約 20 億 ( 2^31)個字元。

而此做法每個item 已不是 String,變成物件,物件又可以定義多個屬性,每個屬性都可以是String

只要單一 String 變數 不超過 20 億 ( 2^31)個字元,就不會有問題。

至於字典 key的數量與物件能擴充的屬性數量,網路上查不到相關資訊

不過我猜字典跟陣列一樣,是虛擬的,能裝多少東西取決於"電腦記憶體"

如此行程式 Arr = Range([A1], Cells(Rows.Count, Columns.Count))

使用新版Excel 的人執行這行基本上都會跳出 "記憶體不足"  (除非你電腦記憶體非常大)

程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

回復 9# n7822123

哇賽~~~龍大你這個太屌了吧
我土炮方法想了好久,繞了好幾圈,才做出這樣的功能
你沒幾行就做完了.....
能否教兩句? 想學...

(有搜尋ByVal Target As Range的用法,但還不是很懂,我們這版之前也有相關主題)
目前看來有兩大重點
1.觸發功能
2.塞字典功能

另外是,我只會插入AXTIVE的按鈕,裡面放程式碼
你那兩個按鈕...好像也不是按鈕,為什麼可以按啊? 真神奇

然後你還有建立了 模組 跟 物件類別模組....
這我以前都沒有用過...
哈囉~大家好呀

TOP

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

版大您好,關於這次程式需求的部分,我略做說明一下

三層式下拉選單,我有搜尋過網路
有個做法也是要先把類別表,從直的轉成橫的,之後再去做處理
但是因為我也是幫忙同事處理的,怕以後參照表有變動(新增或刪減),可能同事就不會操作了
所以我要寫一個...按下按鈕就會通通自己完成的檔案

而且A部門的人,參照表也許有15種。但是B部門的人,參照表也許只有12種。C部門的有26種...等等
所以我希望檔案給他們後,他們只要會增減參照表,剩下的,我的按鈕都會幫他們設定好好的,方便使用

參照表的C欄 (用途類別) 應該是絕對不重覆的。
A欄是大分類,所以在表中很多重覆
B欄是中分類,所以有一些重覆,更討厭的是有一些類別還是空的
C欄是小分類,所以應該必定不會重覆,不然帳就會出錯了

然後...為什麼不要做...先A欄下拉式大分類,之後B欄會剩下相對應的分類,最後剩下C欄的分類
正常來講一般比如說在搜尋料件或倉儲,應該是這樣比較快
但是我這邊報帳表,是不能選錯的
比如,A選到3大類,B選3中類,C卻選去1小類---(這樣帳的科目就錯了)

所以,這樣東西 是 A的3  那肯定是B的3   肯定是C的3  (就是整個表的第3列的ABC)
本來是很想叫同事在填的時候,乾脆自己跳去Sheet("參照表"),複製ABC看哪一列,再回來貼上值就好
但是又怕他們把參照表弄亂了
只好想出....只要下拉選擇C欄,經過查照功能,自動幫你放入....相對應的A跟B
所以才想出我那個檔案的做法 (很土炮...)

以目前公司的狀況,參照表的C欄,要報帳的科目應該是不會超過30~50樣

感謝版大的熱心教學
哈囉~大家好呀

TOP

本帖最後由 n7822123 於 2020-5-20 00:21 編輯

回復 12# iceandy6150


有搜尋ByVal Target As Range的用法,但還不是很懂,我們這版之前也有相關主題

不是三言兩語學得來的,直接給你網址吧~ (GTW 這個人寫的 VBA教學很適合 VBA新手看)

目錄第14項    當然他只介紹幾種常用的而以,要更詳細還是買本書吧!  


https://blog.gtwang.org/programming/vba

另外是,我只會插入AXTIVE的按鈕,裡面放程式碼

你那兩個按鈕...好像也不是按鈕,為什麼可以按啊? 真神奇

任何圖片 滑鼠右鍵 > 指定巨集  都可以指定你要點擊圖片時,所要執行的巨集

程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

你要的功能想要弄到最容易使用 ( List 易搜 , 支持 mousescroll )

就是 把另一個 EXCEL 嵌入到 本體 EXCEL

另一個 EXCEL 直接拿來當 List

直接支援 mousescroll ,  綜觀查找,  也可篩選查找

ListBox 最大問題:  No mousescroll , 東西一多要找到東西有點費力

TOP

回復 14# n7822123

感謝您的教學,原來用照片也可以做同樣的功能,又學到一招
也感謝分享網址,會多去看看的
哈囉~大家好呀

TOP

回復 15# jackyq

聽起來是挺深的,有時間再來搜尋看看這些用法,感謝您的分享與教學
哈囉~大家好呀

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

回復 18# 准提部林


    感謝版主回覆教學,看來也是利用Sheet_Change去做處理
    這邊我再研究一下使用方式,謝謝
哈囉~大家好呀

TOP

回復 15# jackyq


    大大,您說的功能我都不會使用,如果有機會,再請您教學一下,謝謝
哈囉~大家好呀

TOP

        靜思自在 : 要比誰更受誰.不要比誰更怕誰。
返回列表 上一主題