返回列表 上一主題 發帖

[發問] 如何判斷我剛所打勾的CheckBox

[發問] 如何判斷我剛所打勾的CheckBox

For  i = 1 To  4
If Me.Controls("CheckBox" & i).Value = True

以上是判斷1~4是否有被打勾~但是他每次一定會從1開始判斷~
是否有方法讓他判斷哪一個是我剛打勾的CheckBox

本帖最後由 GBKEE 於 2012-8-14 14:42 編輯

回復 19# c_c_lai
一個是從 0 開始起算, 另一組是從 1 開始起算,但 Test.rar  之 aryCBs(1 To  1)  (第一次) 就好像沒意義了?
這問的好!  敬佩了 看的很仔細
ReDim Preserve aryCBs(1 To cCBs)
ReDim 陳述式 在程序層次中用來重新配置動態陣列變數的儲存空間。
  1. cCBs = cCBs + 1
  2. ReDim Preserve aryCBs(1 To cCBs) ' aryCBs(1  To 1) 只有有1元素
複製代碼
  1. cCBs = cCBs + 1
  2. ReDim Preserve aryCBs(0 To cCBs) ' aryCBs(0  To 1) 有2元素 多一元素      
複製代碼
  1. ReDim Preserve aryCBs(0 To cCBs) ' aryCBs(0  To 0)  只有有1元素
  2. cCBs = cCBs + 1    '加上1元素
複製代碼
  1. ReDim Preserve aryCBs(1 To cCBs) '  aryCBs(1  To 0)    會有錯誤
  2. cCBs = cCBs + 1
複製代碼

TOP

回復 18# GBKEE
Test.rar �堭z是使用 ReDim Preserve aryCBs(1 To cCBs),
而此處您用 ReDim Preserve aryCBs(0 To cCBs)
一個是從 0 開始起算, 另一組是從 1 開始起算,
但 Test.rar  之 aryCBs(1 To  1)  (第一次) 就好像沒意義了?
請多指教!

TOP

回復 17# av8d
7#  UserForm1的程式碼 是依 2# 的附檔修改
2# 的附檔中aryCBs 變數 是 Module1 的公用變數
如今你有4個UserForm 皆須私有的 aryCBs變數
  1. '4個UserForm 的 程式碼
  2. Public xlText As String
  3. Dim aryCBs()  As New cControlArray
  4. Private Sub UserForm_Initialize()
  5. Dim cCBs As Integer
  6. Dim ctl As Control
  7.    cCBs = 0
  8.    For Each ctl In Me.Controls
  9.        If TypeName(ctl) = "CheckBox" Then
  10.            cCBs = cCBs + 1
  11.            ReDim Preserve aryCBs(0 To cCBs)
  12.            Set aryCBs(cCBs).CheckboxGroup = ctl
  13.        End If
  14.    Next ctl
  15. End Sub
複製代碼

TOP

回復 7# GBKEE


    我在說明詳細一點~大大7樓的正式我要的需求~
但是當UserForm增加~所選取的最後一個CheckBox則無法指向到最後一次點選的~
    Private Sub CheckboxGroup_Click()
    UserForm2.xlText = CheckboxGroup.Caption
    End Sub
以上沒問題

    Private Sub CheckboxGroup_Click()
    UserForm2.xlText = CheckboxGroup.Caption
    UserForm3.xlText = CheckboxGroup.Caption
    UserForm4.xlText = CheckboxGroup.Caption
    End Sub
以上是UserForm增加後~出現了問題!

TOP

回復 7# GBKEE
Private Sub CommandButton1_Click()
   '說明 UserForm1中 CommednBurron 程式
   UserForm1.TextBox1 = UserForm1.xlText
End Sub

UserForm1.xlText的值~目前我對應不出來~請大大解說~謝謝!

TOP

回復 14# GBKEE


    大大~請問UserForm2.xlText的值是?

TOP

回復 13# av8d
要了解物件

    test.rar (14.43 KB)

TOP

回復 10# GBKEE

因為只改以下~程式會錯亂!
    Private Sub CheckboxGroup_Click()
    UserForm2.xlText = CheckboxGroup.Caption
    UserForm3.xlText = CheckboxGroup.Caption
    UserForm4.xlText = CheckboxGroup.Caption
    End Sub

是否要對
xlText 和 CheckboxGroup 變數的宣告?

TOP

因不清楚單純全部複製(格式 物件  程式碼) 還是 單一部分  故提幾點建議

方法1.  userform1 匯出後 再匯入.. (name 記得改 還有程式碼內 userform1記得改2
方法2.  userform1 複製後  userform2貼上  (物件一次 程式碼一次)

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

        靜思自在 : 多做多得。少做多失。
返回列表 上一主題