返回列表 上一主題 發帖

[發問] 怎麼在USERFORM中加入可篩選複選之樹狀圖

回復 22# luhpro

感謝前輩 我已經下載來試用
試用之後發現其備可能誤會我的意思了
我用圖解
如下圖(一)這是執行前輩幫忙的程式後的結果

圖中跑出的是165字樣
但我想要的執行結果則是如圖(二):
4444.png
像是這個樣子的核取方塊樹狀圖

圖(二)是我在分析後的表格中之標籤列下的篩選箭頭篩選VSL(船舶)出來的截圖
如圖(三)所示


不知道我解是這樣 前輩可以好理解嗎?

我現在正在研究您的程式碼部分
如果前輩有做修改與回復 再麻煩請您給個另外載點
因為我真的沒有權限
謝謝您不辭辛勞的教導!!

TOP

本帖最後由 luhpro 於 2016-4-25 22:56 編輯
回復  luhpro
...
加上我因為權限的關係無法下載附檔
...
chaoyiho 發表於 2016-4-25 19:19

咦?
剛剛查了本網站的說明 小學生有 "下載/查看附件" 的權限耶,
你不能嗎?



提供另一個下載點 :
http://www.FunP.Net/695648

我的問題主要有兩個
1.嘗試前輩上面的程式碼 可能因為不知道該放哪邊而造成錯誤進而無法執行

如附網址的檔案,
試試看若有問題再提出.

2.關於重複動作的程式碼縮減

主要是把重複的程式碼獨立出來放在 Module 內,
以 Public Sub 被呼叫程序名()   做開頭(如此整個檔案都能呼叫此程序),
在確保每個呼叫點都不會因改成此呼叫而走樣的情形下,
以呼叫此程序的程式碼取代原重複的程式碼.

好處是易於維護與偵錯,
之後修改程式只需變動此程序內容,
中斷點也只要設在此程序內即可.
不用一個一個去尋找及修改程式碼或設中斷點.

TOP

回復 20# chaoyiho
你把檔案壓縮上傳,以便確認你的問題所在。
因為你提出的訊息與修正內容無關。

TOP

回復 12# c_c_lai

感謝cc大的回覆
我有嘗試照著您的指示修改
但是卻會發現出現一個新問題
activeX 錯誤
Google了一下
我卻看不懂這到底是屬於一個什麼樣的東西
嘗試到工具列中尋找這個附件 但是我找不到
請問這是什麼問題所導致
我又該怎麼解決呢?

TOP

回復 15# GBKEE

感謝版主!!
那再請問版主 請問您這個程式碼的意義試怎麼一個邏輯呢?
希望可以針對這樣的程式碼該放在哪裡做宣告與程式碼內容做個講解
我真的很希望可以學會
再次謝謝版主!!

TOP

回復 13# luhpro

抱歉前輩,到現在才回
那是因為我一直想要將您的講解try出來之後再回報我的問題與發現
可是我發現我搞了幾天還是沒能try出來...
真的是能力非常不足
所以今天加班務必希望可以研究出來!!

加上我因為權限的關係無法下載附檔
請問前輩可以將檔案寄到我的信箱嗎?
讓我有個參考..
我的信箱是:
[email protected]

研究您說的這些 結果一個都沒有試出來 一直出現錯誤
我想絕對是因為我的程式碼貼錯地方
因為是初學者的關係
所以資料特別混亂
今天卯起來把程式碼通通做一個整理
現在程式碼已經做好分類 雖然還是很隴長...

我的問題主要有兩個
1.嘗試前輩上面的程式碼 可能因為不知道該放哪邊而造成錯誤進而無法執行
2.關於重複動作的程式碼縮減

感謝前輩們的幫忙!!

TOP

回復 14# jackyq
嗯...
因為我大都是看小幫手與本站自學,
有時忙沒看到的討論串就只能錯失學習了,

在小幫手裡的說明:
Dictionary 物件
  描述
物件,用於儲存資料關鍵字和項目對。
語法
Scripting.Dictionary
請注意
Dictionary 物件與 PERL 相關陣列全等。可以是任何型式的資料的項目被儲存在陣列中。每個項目都與一個唯一的關鍵字相關。該關鍵字用來取出單個項目,通常是整數或字串,可以是除陣列外的任何型態。
下面的程式碼舉例說明了如何建立一個 Dictionary 物件:

Dim d                   '建立一個變數
Set d = CreateObject(Scripting.Dictionary)
d.Add "a", "Athens"     '加入一些關鍵字和項目
d.Add "b", "Belgrade"d.Add "c", "Cairo"
...


所以,我一直學到的都是 Dictionary 物件要用 Variant 資料型態 來宣告,
早先為了解決類似的錯誤, Is Nothing, Is Null, = Null, .... 試了一堆方法耗時挫折,
後來乖乖的用 錯誤處理程式 處理才順利,
謝謝分享指正.

TOP

回復 15# GBKEE


    http://forum.twbts.com/redirect. ... 0&fromuid=21301

我有改正押   cc....

TOP

本帖最後由 GBKEE 於 2016-4-23 07:31 編輯

回復 14# jackyq
明確的宣告變數型態 ,可使程式碼不易出錯,且容易偵錯
  1. Option Explicit
  2. Dim vD 'As Object
  3. Sub Ex()
  4.     '如 Dim vD  需有執行 Ex1後再執行 Ex
  5.     '如是 Dim  vD  As Object 就不需先執行 Ex1
  6.     MsgBox vD Is Nothing  'Dim vD  程式執行錯誤了   
  7.     Set vD = Nothing
  8.     MsgBox vD Is Nothing
  9.     If vD Is Nothing Then
  10.         Set vD = CreateObject("Scripting.Dictionary")
  11.     End If
  12.     End   '結束所有的程序執行
  13. End Sub
  14. Sub Ex1()
  15.     MsgBox IsObject(vD)
  16.     If Not IsObject(vD) Then
  17.         Set vD = CreateObject("Scripting.Dictionary")
  18.     End If
  19.     MsgBox vD Is Nothing
  20.     'End
  21. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 13# luhpro

大大說的 "我發現 Excel 上並不能用一個 Is Nothing 就包辦所有這類物件錯誤的判斷"

如果把 Public vD  改成 Public vD  as object

還會出現  Is Nothing  發生問題嗎

蠻好奇的

如果是用 Public vD  
不用 On Err 可以寫成
if  isObject( vD )  then
    if   vD  is Nothing  then
    end if
end if

TOP

        靜思自在 : 有願放在心裡,沒有身體力行,正如耕田不播種,皆是空過因緣。
返回列表 上一主題