- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2024-11-14
|
5#
發表於 2012-9-10 20:57
| 只看該作者
本帖最後由 luhpro 於 2012-9-10 21:00 編輯
回復 chin15
我大概敘述一下~暫時A.B.C代表~但是不只3個~到目前為止有50多個
Private Sub Label1_C ...
av8d 發表於 2012-9-10 09:10 
這樣的程式寫法確實是會有問題的.
首先,
每個程序都必須有頭有尾,
不能只有起點而沒有終點.
所以在 兩個 Sub 間必定要有一個 End Sub 以指明前一個 Sub 已經結束,
而最後一個 Sub 下方也一樣要有一個 End Sub 指明其終點.
其次,
Select Case 底下,
不但要有不定數的 Case 表示選擇與分支處理,
更要有表明 Select 已經結束的 End Select.
在你最後的那個程式中,
並非只呼叫副程序就好,
還要把 Select Case 的參數傳過去,
這樣副程序中的 Select Case 才能有處理的依據.
同樣的,
每個程序都不能有頭沒尾,
Select Case 後也不能沒有 Case 與 End Select.
故修改如下 :- Private Sub Label1_Click()
- Call Search(ComboBox1.Value)
- End Sub
- Private Sub Label2_Click()
- Call Search(ComboBox2.Value)
- End Sub
複製代碼- Public Sub Search(Val)
- Select Case Val
- Case "A"
- UserForm1.Hide
- UserForm2.Show
-
- Case "B"
- UserForm1.Hide
- UserForm3.Show
-
- Case "C"
- UserForm1.Hide
- UserForm4.Show
- End Select
- End Sub
複製代碼 另外,若相同的物件很多,
建議運用動態或是陣列來建立物件,
這樣程式會比較好寫. |
|