Board logo

標題: [發問] ComboBox 和 ToggleButton [打印本頁]

作者: jesscc    時間: 2011-9-30 23:59     標題: ComboBox 和 ToggleButton

本帖最後由 jesscc 於 2011-10-1 00:42 編輯

最近練習 ComboBox 和 ToggleButton 這兩種物件的用法,碰到一些問題無法解決

功能
ToggleButton1:
按下後,其他兩個 ToggleButton 自動彈起失效,然後分別選擇兩個 ComboBox 的值,接著在框線範圍內,點選任意儲存格都會將 ComboBox1 & ComboBox2 的文字填入儲存格中

ToggleButton2:
按下後,其他兩個 ToggleButton 自動彈起失效,然後在框線範圍內,點選任意儲存格,填入黃底斜線格式

ToggleButton3:
按下後,其他兩個 ToggleButton 自動彈起失效,然後在框線範圍內,點選任意儲存格,填入黃底X線格式

"任一 ToggleButton 按下後,其他兩個 ToggleButton 自動彈起失效" 這個功能一直試不出來,而且程式執行不正常,可以教教我如何修改嗎?

[attach]8064[/attach]
作者: luhpro    時間: 2011-10-1 17:44

回復 1# jesscc
以下程式放在 "工作表1"
  1. Private Sub ToggleButton1_Click()
  2.   If ToggleButton1 = True Then
  3.     ToggleButton2 = False
  4.     ToggleButton3 = False
  5.   End If
  6. End Sub

  7. Private Sub ToggleButton2_Click()
  8.   If ToggleButton2 = True Then
  9.     ToggleButton1 = False
  10.     ToggleButton3 = False
  11.   End If
  12. End Sub

  13. Private Sub ToggleButton3_Click()
  14.   If ToggleButton3 = True Then
  15.     ToggleButton1 = False
  16.     ToggleButton2 = False
  17.   End If
  18. End Sub

  19. Sub ComBoxInit()  ' 另外新增此部份程式, ComBox 給初值, 只要於開啟檔案時執行一次即可
  20.   ComboBox1.List = Array("夢", "八德", "義", "巨", "樂", "糖", "中鋼", "新人訓", "實習", "自訂")
  21.   ComboBox2.List = Array("9-17", "9-21", "9-2230", "10-22", "1030-22", "1030-2230", "11-17", "11-22", "11-2230", "12-17", "12-20", "12-22", "12-2230", "14-22", "14-2230", "18-22", "19-22", "自訂")
  22. End Sub
複製代碼
以下程式放在 "ThisWorkBook"
  1. Private Sub Workbook_Open()
  2.   Call Sheets("工作表1").ComBoxInit
  3. End Sub
複製代碼

作者: jesscc    時間: 2011-10-1 22:14

回復 2# luhpro


   謝謝 luhpro 大,基本功能已經達到我所要的效果了。
至於 Combobox 初始值的設定,好像沒有什麼作用。
作者: luhpro    時間: 2011-10-2 12:02

回復  luhpro
謝謝 luhpro 大,基本功能已經達到我所要的效果了。
至於 Combobox 初始值的設定, ...
jesscc 發表於 2011-10-1 22:14

應該並不是沒什麼作用,
只要點開下拉式選單應該就會看到加入的選項內容.
上述程式在加上選項內容後沒有給定有秀文字的初值,
所以未操作前看起來沒內容.
  1. Sub ComBoxInit()
  2.   With ComboBox1
  3.     .List = Array("夢", "八德", "義", "巨", "樂", "糖", "中鋼", "新人訓", "實習", "自訂")
  4.     .Text = "自訂"
  5.   End With
  6.   
  7.   With ComboBox2
  8.     .List = Array("9-17", "9-21", "9-2230", "10-22", "1030-22", "1030-2230", "11-17", "11-22", "11-2230", "12-17", "12-20", "12-22", "12-2230", "14-22", "14-2230", "18-22", "19-22", "自訂")
  9.     .Text = "自訂"
  10.   End With
  11. End Sub
複製代碼
這樣就有初值了.

另外, 因為 ComboBox 的初始化是在 Workbook_Open 上執行,
所以程式異動後必須再執行一次 Workbook_Open,
或是關閉 Excel 檔案重開後新的程式才有效喔.
作者: Hsieh    時間: 2011-10-2 13:18

回復 3# jesscc
讓Combobox取得焦點時設置清單內容

Private Sub ComboBox1_GotFocus()
ComboBox1.List = Array("夢", "八德", "義", "巨", "樂", "糖", "中鋼", "新人訓", "實習", "自訂")
End Sub


Private Sub ComboBox2_GotFocus()
ComboBox2.List = Array("9-17", "9-21", "9-2230", "10-22", "1030-22", "1030-2230", "11-17", "11-22", "11-2230", "12-17", "12-20", "12-22", "12-2230", "14-22", "14-2230", "18-22", "19-22", "自訂")
End Sub
作者: jesscc    時間: 2011-10-2 15:38

嗯!可以了!
謝謝 l 大和 H 大的教導!
作者: SWRovers    時間: 2014-11-14 14:58

謝謝,算是學習到了,但是有個疑問,如果資料非常的多,那應該如何修改?




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