返回列表 上一主題 發帖

[發問] 如何將表單內的multipage增設物件類別呢?

回復 1# dechiuan999
1.  Set mPg(k) = New myClass,你把k寫成1了
2.  UserForm上只有一個MultiPage物件,即MultiPage1,
      "PDF檔"和"AZLB檔"這兩個分頁是 MultiPage1 底下的 Page 物件,
      例如分頁"PDF檔"可用 : MultiPage1.Page1 或 MultiPage1.Page(0) 表示

TOP

本帖最後由 stillfish00 於 2013-10-25 15:44 編輯

回復 3# dechiuan999
你要知道使用者選取時是哪一個分頁,可以在change判斷
Private Sub MultiPage1_Change()
  msgbox MultiPage1.Pages(MultiPage1.Value).Caption
End Sub

TOP

本帖最後由 stillfish00 於 2013-10-25 20:04 編輯

回復 5# dechiuan999
我知道你要的是
myClass
  1. Option Explicit

  2. Public WithEvents mTxt As MSForms.TextBox
  3. Public WithEvents mCmd As MSForms.CommandButton
  4. Public WithEvents mPage As MSForms.MultiPage

  5. Private Sub mPage_Change()
  6.   MsgBox mPage.Pages(mPage.Value).Caption
  7. End Sub
複製代碼
Userform
  1. Private Sub UserForm_Initialize()
  2.    
  3.     Dim i As Long
  4.     Dim j As Long
  5.     Dim k As Long
  6.    
  7.     ReDim mTb(1 To 2)
  8.     For i = 1 To 2
  9.         Set mTb(i) = New myClass
  10.         Set mTb(i).mTxt = Me.Controls("Textbox" & i)
  11.         co1.Add mTb(i).mTxt
  12.     Next
  13.    
  14.     ReDim mCd(1 To 6)
  15.     For j = 1 To 6
  16.         Set mCd(j) = New myClass
  17.         Set mCd(j).mCmd = Me.Controls("CommandButton" & j)
  18.         co2.Add mCd(j).mCmd
  19.     Next
  20.    
  21.     ReDim mPg(1 To 1)
  22.     For k = 1 To 1
  23.         Set mPg(k) = New myClass
  24.         Set mPg(k).mPage = Me.Controls("MultiPage" & k)
  25.     Next
  26. End Sub
複製代碼
但是應該是 Userform 上有很多個 MultiPage 時這樣寫才有用吧。

TOP

本帖最後由 stillfish00 於 2013-10-27 12:37 編輯

回復 7# GBKEE
宣告這邊是多了,但我覺得先
Dim mPg() As myClass
後面再
Set mPg(1) = New myClass
顯式地創建實體會比較好,也可以明確知道Class_Initialize()被觸發位置

TOP

        靜思自在 : 是非當教育,讚美作警惕。
返回列表 上一主題