返回列表 上一主題 發帖

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

回復 52# chaoyiho
這是你並無任何選項,接著直接點選 "執行分析" 所產生的,
是麼?

TOP

回復 50# c_c_lai

我真的...不知道要怎麼感謝兩位的大恩大德
乾脆請吃飯好了!!

但是重點....
我....
又錯誤了 這次是全新的錯誤1004
出現在我輸紐分析的內部
之前分析都沒有問題 怎麼現在前面問題解決之後會跑出這個呢?
如圖


上天真的給我好多的考驗阿....

TOP

再另外
把 EXCEL表單處理介面 裡面的這段 加入藍字部分

Private Sub CommandButton1_Click()
    If Application.FindFile = False Then
        MsgBox "您沒有開啟母檔"
    End If
Dim lRrow&
    lRrow = 3
vD.RemoveAll
While Cells(lRow, 5) <> ""
      If Not vD.Exists(CStr(Cells(lRow, 5))) Then
        EXCEL表單處理介面.ListBox1.AddItem CStr(Cells(lRow, 5))
        vD(CStr(Cells(lRow, 5))) = lRow
      End If
      lRow = lRow + 1
End With
End Sub

TOP

本帖最後由 c_c_lai 於 2016-4-28 09:48 編輯

回復 44# chaoyiho
第一個問題: 變數宣告前後不一
  1. Private Sub CommandButton1_Click()
  2.     If Application.FindFile = False Then
  3.         MsgBox "您沒有開啟母檔"
  4.     End If
  5.     Dim lRow&        '  Dim lRrow&  (錯誤的變數宣告)
  6.     lRow = 3         '  lRrow = 3   (錯誤的變數宣告)
  7.    
  8.     EXCEL表單處理介面.ListBox1.Clear    '  避免重複貼製,造成與 "手動篩選" 項目不符
  9.    
  10.     vD.RemoveAll
  11.     While Cells(lRow, 5) <> ""
  12.       If Not vD.Exists(CStr(Cells(lRow, 5))) Then
  13.         EXCEL表單處理介面.ListBox1.AddItem CStr(Cells(lRow, 5))
  14.         vD(CStr(Cells(lRow, 5))) = lRow
  15.       End If
  16.       lRow = lRow + 1
  17.     Wend             '  上有 While 而無結束處裡 (Wend)
  18. End Sub
複製代碼
第一個問題: 產生 ActiveX 的原因
  1. Private Sub UserForm_Initialize()
  2.     Dim hWndForm As Long        '  LongPtr 是 64 位元的長整數指標宣告
  3.     Dim IStyle As Long
  4.    
  5.     '  Set vD = CreateObject("scripting.dictonary")    '  少一個 i
  6.     Set vD = CreateObject("Scripting.Dictionary")
  7.    
  8.     hWndForm = FindWindow("ThunderDFrame", Me.Caption)
  9.     IStyle = GetWindowLong(hWndForm, GWL_STYLE)
  10.     IStyle = IStyle Or WS_THICKFRAME '(還原)
  11.     IStyle = IStyle Or WS_MINIMIZEBOX '(最小化)
  12.     IStyle = IStyle Or WS_MAXIMIZEBOX '(最大化)
  13.     SetWindowLong hWndForm, GWL_STYLE, IStyle
  14. End Sub
複製代碼
jackyq 大大指證出你  ActiveX 的錯誤點了,原因是你輸錯字了
Set vD = CreateObject("scripting.dictonary") ,少一個 i  ,
與大小寫無關,年紀大了畢竟視力退很多了,不仔細還真沒看到呢!
謝謝 jackyq 大大。

TOP

另外
把 EXCEL表單處理介面 裡面的第一行   Option Explicit  暫時先拿掉

TOP

本帖最後由 jackyq 於 2016-4-28 09:30 編輯

EXCEL表單處理介面 裡面的

Private Sub UserForm_Initialize()

Dim hWndForm As LongPtr
Dim IStyle As LongPtr

Set vD = CreateObject("scripting.dictonary")

改成如下

Private Sub UserForm_Initialize()

Dim hWndForm As Long
Dim IStyle As Long

Set vD = CreateObject("scripting.dictionary")


存檔後 , 關閉再重開啟

改完後 我這邊執行就ok 了啊

TOP

回復 46# jackyq

真的少了一個 i !!!

但是就算加上去 我還是持續出現activex錯誤....

TOP

本帖最後由 jackyq 於 2016-4-28 09:12 編輯

回復 44# chaoyiho


Set vD = CreateObject("scripting.dictionary")

你少了一個   i


另外 LongPtr  
用 long 就可以了

TOP

回復 41# jackyq

前輩您好
您的意思是 activex的錯誤是因為這一句語法錯誤嗎?
但是我檢查完之後
應該沒有錯啊(?)
可以請您說明詳細一點嗎?

TOP

回復 43# c_c_lai

前輩早,抱歉現在才回文
因為昨天有點事情耽擱了...
您上面的回文我現在馬上來處理看看~~!!

但是關於回文前的那個步驟 我的確是照著做了
卻是會出現 ActiveX 無法建立物件的錯誤
如附檔
表單處理系統3.2等待修改.rar (650.65 KB)

真的不知道到底怎麼了 Q_Q

如果您看見了 再麻煩您幫我檢查一下!!
謝謝您

痾...對了  我沒有權限 所以無法在這裡抓東西
希望前輩再麻煩一下給我個下載點或網址或直接寄送至我的信箱[email protected]
我會馬上回復
再次感謝

TOP

        靜思自在 : 能付出愛心就是福,能消除煩惱就是慧。
返回列表 上一主題