作者hallfive (sigh)
看板Visual_Basic
標題[VBA ] 請問UserForm的更新問題
時間Tue Mar 10 20:39:05 2009
想請問版上各位前輩
我目前在UserForm_Activate裡建立了動態的物件,如下
Private Sub UserForm_Activate()
Dim myComboBox(20) As ComboBox
Dim myTextBox(20) As TextBox
myComboBox(1) = Controls.Add("Forms.ComboBox.1", "myCbBox" & 1)
myTextBox(1) = Controls.Add("Forms.ComboBox.1", "myTB" & 1)
myComboBox(1).AddItem XXX(n) 'XXX(n)為欲加入下拉式選單的東西,是陣列
'選擇下拉式選單的東西,將其資訊對應到動態TextBox
Select Case myComboBox(1).ListIndex
Case 0
myTextBox(1).Text = YYY(0)
Case 1
myTextBox(1).Text = YYY(1)
End Select
End Sub
因為必須要用動態物件...
大致上的操作情境為進入此UserForm後
會把一些東西丟到動態物件myComboBox(1)下拉式選單去,然後選擇其中的東西 XXX(n)
會顯示YYY(0) or YYY(1)在動態物件 myTextBox(1)
但目前因為是在Activate下,所以選擇下拉式選單之後,並不會有接下來的動作
請問要如何才能解決這個問題呢?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.195.209.225
※ 編輯: hallfive 來自: 123.195.209.225 (03/10 20:43)
推 fumizuki:儲存動態生成的控制項的變數要放在模組宣告區才對 03/10 22:24
→ fumizuki:(就是程式碼的最上面,第一個sub或function之前) 03/10 22:24
→ fumizuki:要選了東西後有動作必須要寫事件的程式碼啊 不然怎麼知道 03/10 22:25
→ fumizuki:要做什麼? 03/10 22:25
→ fumizuki:宣告變數時也必須Dim WithEvents x(20) AS Combobox 才行 03/10 22:26
→ fumizuki:然後就可以在程式碼視窗上方的兩個下拉選擇物件及事件了 03/10 22:27
※ 編輯: hallfive 來自: 123.195.209.225 (03/10 23:01)