Board logo

標題: [發問] 如何使用Click參照 [打印本頁]

作者: av8d    時間: 2012-9-7 12:18     標題: 如何使用Click參照

Private Sub Label1_Click()
Select Case ComboBox1.Value
case "XXX"

Private Sub Label2_Click()
Select Case ComboBox2.Value
case "XXX"


由於Label1的case "XXX"和Label2的case "XXX"
且case "XXX"非常的多~我另外開了一個Module1內容如下
Sub Search()
case "XXX"

然後改寫Label1和Label2的內容~如下
Private Sub Label1_Click()
Select Case ComboBox1.Value
case "XXX"

Private Sub Label2_Click()
Select Case ComboBox2.Value
Call Search

但是卻出現編譯錯誤:"在Select Case 與第一個Case陳述式間,有不正確的陳述式或標籤
作者: chin15    時間: 2012-9-7 17:39

每個事件都只有case "XXX"

然後沒下文了?
作者: av8d    時間: 2012-9-10 09:10

回復 2# chin15

我大概敘述一下~暫時A.B.C代表~但是不只3個~到目前為止有50多個

Private Sub Label1_Click()
Select Case ComboBox1.Value
case "A"
UserForm1.Hide
UserForm2.Show
case "B"
UserForm1.Hide
UserForm3.Show
case "C"
UserForm1.Hide
UserForm4.Show

Private Sub Label2_Click()
Select Case ComboBox2.Value
case "A"
UserForm1.Hide
UserForm2.Show
case "B"
UserForm1.Hide
UserForm3.Show
case "C"
UserForm1.Hide
UserForm4.Show

由於Label1的case "XXX"和Label2的case "XXX"
且case "X"非常的多~我另外開了一個Module1內容如下
Sub Search()
case "A"
UserForm1.Hide
UserForm2.Show
case "B"
UserForm1.Hide
UserForm3.Show
case "C"
UserForm1.Hide
UserForm4.Show

然後改寫Label1和Label2的內容~如下
Private Sub Label1_Click()
Select Case ComboBox1.Value
Call Search

Private Sub Label2_Click()
Select Case ComboBox2.Value
Call Search

但是卻出現編譯錯誤:"在Select Case 與第一個Case陳述式間,有不正確的陳述式或標籤
作者: chin15    時間: 2012-9-10 20:13

太高深了看不懂,通常會用物件類別模組處理這類事件。你這樣玩法一定有你特殊的目的。
作者: luhpro    時間: 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.

故修改如下 :
  1. Private Sub Label1_Click()
  2.   Call Search(ComboBox1.Value)
  3. End Sub

  4. Private Sub Label2_Click()
  5.   Call Search(ComboBox2.Value)
  6. End Sub
複製代碼
  1. Public Sub Search(Val)
  2.   Select Case Val
  3.     Case "A"
  4.       UserForm1.Hide
  5.       UserForm2.Show
  6.       
  7.     Case "B"
  8.       UserForm1.Hide
  9.       UserForm3.Show
  10.       
  11.     Case "C"
  12.       UserForm1.Hide
  13.       UserForm4.Show
  14.   End Select
  15. End Sub
複製代碼
另外,若相同的物件很多,
建議運用動態或是陣列來建立物件,
這樣程式會比較好寫.




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