程式執行後出現Label沒有設定物變數或With區塊變數
- 帖子
- 231
- 主題
- 55
- 精華
- 0
- 積分
- 293
- 點名
- 0
- 作業系統
- winxp
- 軟體版本
- office2003
- 閱讀權限
- 20
- 性別
- 男
- 來自
- KEELUNG
- 註冊時間
- 2010-7-24
- 最後登錄
- 2018-8-28
|
程式執行後出現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
謝謝各位大大! |
|
|
|
|
|
|
- 帖子
- 231
- 主題
- 55
- 精華
- 0
- 積分
- 293
- 點名
- 0
- 作業系統
- winxp
- 軟體版本
- office2003
- 閱讀權限
- 20
- 性別
- 男
- 來自
- KEELUNG
- 註冊時間
- 2010-7-24
- 最後登錄
- 2018-8-28
|
2#
發表於 2012-12-2 09:14
| 只看該作者
補充說明:
表單上有三個Textbox物件
Textbox1輸入字串時,Label1會
顯示Textbox1的字串
其它雷同 |
|
|
|
|
|
|
- 帖子
- 472
- 主題
- 5
- 精華
- 0
- 積分
- 485
- 點名
- 0
- 作業系統
- Windows
- 軟體版本
- MS Office
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 香港
- 註冊時間
- 2010-7-4
- 最後登錄
- 2014-12-28

|
3#
發表於 2012-12-2 10:09
| 只看該作者
回復 1# dechiuan999
試試修改一下表單部份:- Dim myControl() As mTxtClass
- Private Sub UserForm_Initialize()
- Dim i As Long
- ReDim myControl(1 To 3)
- For i = 1 To 3
- Set myControl(i) = New mTxtClass
- Set myControl(i).tb = Me.Controls("Textbox" & CStr(i))
- Set myControl(i).lb = Me.Controls("Label" & CStr(i))
- Next
-
- myControl(1).ck1 = 1
- myControl(2).ck1 = 2
- myControl(3).ck1 = 3
-
-
- End Sub
複製代碼 |
|
|
|
|
|
|
- 帖子
- 231
- 主題
- 55
- 精華
- 0
- 積分
- 293
- 點名
- 0
- 作業系統
- winxp
- 軟體版本
- office2003
- 閱讀權限
- 20
- 性別
- 男
- 來自
- KEELUNG
- 註冊時間
- 2010-7-24
- 最後登錄
- 2018-8-28
|
4#
發表於 2012-12-2 14:18
| 只看該作者
回復 3# kimbal
版主大大您好:
小弟依版主大大提供
修正之語法,已測試成功。
小弟對物件類別還是理不出頭緒,
只能多向前輩請益及鞭策自已多加練習。
就感恩! |
|
|
|
|
|
|