有人可以幫助我理解如何調整「For Each」循環通過UserForm的控件循環的順序? (我知道它不是通過「TabIndex」順序循環的,我知道它並不關心在「For Each」中以編程方式循環的「TabIndex」。)Excel宏/用戶窗體:「For Each」沒有循環通過TabIndex順序的控件
我將控件添加到了我當前的UserForm中(屏幕截圖如下)通過複製一對夫婦的單個控件,然後複製先前表單中的一組控件(Ctrl +單擊,複製/粘貼),然後添加控件。控制組(「站點名稱」到「City,St,Zip」)以相反順序(從下到上)循環。理想情況下,我想不斷從頂部到底部循環。
我嘗試通過右鍵單擊和「發送向後/向前」來重新排序,但對於「For Each」循環沒有做任何事情。
For Each txtBox In ADSheaderForm.Controls
If TypeName(txtBox) = "TextBox" Then
If txtBox.Name = "stNmTxtBx" Then
ReDim Preserve txtArr(txtNum)
txtArr(txtNum) = txtBox.Text
txtNum = txtNum + 1
Else
If txtBox.Text = "" Or txtBox.Text = "Optional" Then
ReDim Preserve txtArr(txtNum)
txtArr(txtNum) = "Not Entered"
txtNum = txtNum + 1
Else
ReDim Preserve txtArr(txtNum)
txtArr(txtNum) = txtBox.Text
txtNum = txtNum + 1
End If
End If
End If
Next
我喜歡你的答案,就在一個人想無論怎麼加控制的順序使得通過控制宏觀流動。這也有助於在混合中添加新的控制。我想再給它一點時間,看看是否會彈出一個不同的解決方案。 – JGR
我明白了。它看起來有點笨拙(不得不循環兩次),誰知道 - 也許有一些更優雅的方式 – MacroMarc
我最終刪除了控件並重新添加 - 沒有太多(可能是一打)受到影響。不過,我會在將來記住這一點。很好的答案。 :-) – JGR