返回列表 上一主題 發帖

程式執行後出現Label沒有設定物變數或With區塊變數

程式執行後出現Label沒有設定物變數或With區塊變數

各位大大好:
txtK1.rar (14.02 KB)
  小弟想引用下列語法,但執行之後會出現
Label沒有設定物變數或With區塊變數。
Textbox值無法對應到Label.Caption內。
請問原因為何又應如何修改正確語法呢?

語法如下:

Private WithEvents myTb As MSForms.TextBox
Private WithEvents myLab As MSForms.Label
Private myCktype1 As Long
Private myCktype2 As Long
Public Property Set tb(setTb As MSForms.TextBox)

    Set myTb = setTb
   
End Property
Public Property Get tb() As MSForms.TextBox

End Property
Public Property Let ck1(setCk1 As Long)
   
    myCktype1 = setCk1
   
End Property
Public Property Set lb(setLb As MSForms.Label)
   
    Set myLab = setLb
   
End Property
Public Property Let ck2(setCk2 As Long)
   
    myCktype2 = setCk2
   
End Property
Private Sub myTb_Change()
   
   myTb.Text = UCase(myTb)
   Select Case myCktype1
   
   Case 1        
        'UserForm1.Label1.Caption = myTb.Text
        myLab.Caption = myTb.Text          '為何會出現沒有設定物變數或With區塊變數呢?        
   Case 2   
        'UserForm1.Label2.Caption = myTb.Text
        myLab.Caption = myTb.Text
   Case 3
        
        'UserForm1.Label3.Caption = myTb.Text
        myLab.Caption = myTb.Text        
   End Select            
End Sub

Private Sub UserForm_Initialize()
        
    Dim i As Long
    ReDim myTb(1 To 3)
    For i = 1 To 3
        Set myTb(i) = New mTxtClass
        Set myTb(i).tb = Me.Controls("Textbox" & CStr(i))
    Next
   
    myTb(1).ck1 = 1
    myTb(2).ck1 = 2
    myTb(3).ck1 = 3
   
    ReDim myLab(1 To 3)
    For i = 1 To 3
        Set myLab(i) = New mTxtClass
        Set myLab(i).lb = Me.Controls("Label" & CStr(i))
    Next
   
    myLab(1).ck2 = 1
    myLab(2).ck2 = 2
    myLab(3).ck2 = 3      
End Sub

謝謝各位大大!

補充說明:
表單上有三個Textbox物件
Textbox1輸入字串時,Label1會
顯示Textbox1的字串
其它雷同

TOP

回復 1# dechiuan999


    試試修改一下表單部份:
  1. Dim myControl() As mTxtClass

  2. Private Sub UserForm_Initialize()


  3.     Dim i As Long
  4.     ReDim myControl(1 To 3)
  5.     For i = 1 To 3
  6.         Set myControl(i) = New mTxtClass
  7.         Set myControl(i).tb = Me.Controls("Textbox" & CStr(i))
  8.         Set myControl(i).lb = Me.Controls("Label" & CStr(i))
  9.     Next
  10.    
  11.     myControl(1).ck1 = 1
  12.     myControl(2).ck1 = 2
  13.     myControl(3).ck1 = 3
  14.    
  15.    
  16. End Sub
複製代碼
懂得發問,答案就會在其中

今日の一秒は  明日にない
http://kimbalko-chi.blogspot.com
http://kimbalko.blogspot.com

TOP

回復 3# kimbal


    版主大大您好:

   小弟依版主大大提供
修正之語法,已測試成功。

  小弟對物件類別還是理不出頭緒,
只能多向前輩請益及鞭策自已多加練習。

就感恩!

TOP

        靜思自在 : 知識要用心體會,才能變成自己的智慧。
返回列表 上一主題