Board logo

標題: [發問] For ... To ... 的問題 [打印本頁]

作者: e123chen    時間: 2011-4-12 13:40     標題: For ... To ... 的問題

For ... To ... 的問題

每次寫 For i=0 To N 就好像很懂,套上 For j=0 To M 就很暈。

請問如何將這個:

Private arr1() As Class1命令按鈕
Private arr2() As Class1命令按鈕
Private arr3() As Class1命令按鈕
..........

Private Sub UserForm_Initialize()
    ReDim arr1(Me.Frame1.Controls.Count - 1)
    For i = 0 To Me.Frame1.Controls.Count - 1
        Set arr1(i) = New Class1命令按鈕
        Set arr1(i).Class1縣市區 = Me.Frame1.Controls(i)
    Next
    ReDim arr2(Me.Frame2.Controls.Count - 1)
    For i = 0 To Me.Frame2.Controls.Count - 1
        Set arr2(i) = New Class1命令按鈕
        Set arr2(i).Class1縣市區 = Me.Frame2.Controls(i)
    Next
    ReDim arr3(Me.Frame3.Controls.Count - 1)
    For i = 0 To Me.Frame3.Controls.Count - 1
        Set arr3(i) = New Class1命令按鈕
        Set arr3(i).Class1縣市區 = Me.Frame3.Controls(i)
    Next
..........
End Sub

簡化成
For i=0 To N
     For j=0 To M
        .....
        ........
     Next j
Next i
作者: e123chen    時間: 2011-4-12 13:46

附件
[attach]5327[/attach]
作者: GBKEE    時間: 2011-4-13 16:33

本帖最後由 GBKEE 於 2011-4-13 16:34 編輯

回復 2# e123chen
物件模組中的 Class1縣市區 As MSForms.CommandButton.
表單中沒有其他作用的CommandButton, 所以將表單中的 CommandButton 指定為 Class1縣市區 即可
  1. Dim Ar() As New Class1命令按鈕
  2. Private Sub UserForm_Initialize()
  3.     Dim e As MSForms.Control
  4.     ReDim Ar(0)
  5.     For Each e In Me.Controls  '表單中的控制項集合
  6.         If e.Name Like "CommandButton*" Then '在表單中的控制項的名稱尋找包含 "CommandButton"
  7.             Set Ar(UBound(Ar)).Class1縣市區 = e
  8.             ReDim Preserve Ar(UBound(Ar) + 1)
  9.         End If
  10.     Next
  11. End Sub
複製代碼

作者: Min    時間: 2011-4-13 23:11

呵呵呵~ for迴圈很難懂... 真的!
學會後 會覺得很簡單! 否則到底還是看不懂 不會用^^"

讓小弟分享一個簡單的學習法
試著在excel上寫一個"九九乘法表" 先別著上google找喔~
自己寫後 你就覺得很簡單了 就出師了~
作者: e123chen    時間: 2011-4-14 12:57

回復 3# GBKEE


    感謝版大指導,比我原來要的還理想。
作者: e123chen    時間: 2011-4-14 13:25

本帖最後由 e123chen 於 2011-4-14 13:27 編輯

回復 4# Min


感謝版大指教。

九九乘法學過。
我本來想寫:

For i=0 To Frames.Count-1
     For j=0 To Frames(i).Controls.Count-1
        .....
        ........
     Next j
Next i

可是沒有 Frames,第一句就卡住了.....




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)