返回列表 上一主題 發帖

請教UserForm帶入引數與帶出引數的問題

回復 1# clio
通常呼叫表單就是在一般模組呼叫
Load Userform1
和
Userform1.Show

如果要傳一些初始化的資料給表單,可在表單程式碼新增如Sub InitForm(arInput)
  1. Public Sub InitForm(arInput)
  2.     ListBox1.List = arInput
  3. End Sub
複製代碼
一般模組Show之前呼叫InitForm傳遞給表單
  1. Sub Test()
  2.     Dim ar
  3.     ar = Array("A", "B", "C")
  4.    
  5.     Load UserForm2
  6.     UserForm2.InitForm ar
  7.     UserForm2.Show
  8. End Sub
複製代碼
Userform 按鈕後取得已選項目
  1. Private Sub CommandButton1_Click()
  2.     Dim Output_AR(1 To ListBox1.Count)
  3.     Dim i As Integer, cnt As Integer
  4.    
  5.     For i = 1 To ListBox1.ListCount
  6.         If ListBox1.Selected(i) Then
  7.             cnt = cnt + 1
  8.             Output_AR(cnt) = ListBox1.List(i)
  9.         End If
  10.     Next
  11.     If cnt > 0 Then
  12.         ReDim Preserve Output_AR(1 To cnt)
  13.         '至此 Output_AR 已取得選擇的項目
  14.     End If
  15. End Sub
複製代碼
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

回復 3# clio
你的意思是想再把Output_AR傳回Test內?

通常我是不會再傳回Test啦,既然我已經有Output_AR,如果我要做甚麼分析或處理,就在Click內呼叫我要處理的Function 並把Output_AR傳到我要處理的Function內不就好了?

堅持要傳回Test的話,就在一般模組宣告一個模組層次的公用(Public)變數,前面的Output_AR都改成直接用這個公用變數,這樣Test內也能看到這個變數就不用傳了。
不過,你要先注意的是預設的表單,當你呼叫UserForm2.Show後,表單顯示出來,程式會停留在該行,會一直等到表單關閉才會跳到下一行。

問的不夠明確我也只能這樣回答啦。
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

        靜思自在 : 受人點水之恩,須當湧泉以報。
返回列表 上一主題