Board logo

標題: [發問]Excel中的checkbox控制項勾選問題 [打印本頁]

作者: qqchange    時間: 2013-1-16 22:32     標題: [發問]Excel中的checkbox控制項勾選問題

Excel中的"控制工具箱"物件checkbox控制項,當打勾時Range("B4")會變粗體字,
取消勾選時Range("B4")會取消粗體字.vba要如何編寫?
如下圖說明Range(i4)打勾,Range(J4)就會變粗體
[attach]13969[/attach]

另外如何讓工作表裡的所有checkbox全部勾選及全部取消勾選?
作者: Hsieh    時間: 2013-1-16 23:53

回復 1# qqchange

使用物件類別讓所有的CheckBox有同樣的效果
[attach]13970[/attach]
[attach]13971[/attach]
作者: qqchange    時間: 2013-1-17 14:14

我是學VBA新手,關於回覆內容想請教幾個問題
1.CheckBox8_Click()的內容是指全選的語法嗎?UBound(MyGroup)是什麼意思?
2.class1的內容是指儲存格式變粗體嗎?儲存格要做其他變化是在這裡設定嗎?
3.moudle1的語法不是很懂?
If cb.progID = "Forms.CheckBox.1" And cb.Object.Caption = "" Then
            ReDim Preserve MyGroup(s)
            Set MyGroup(s).xlBox = cb.Object
            s = s + 1
  End If
4.Public WithEvents xlBox As MSForms.CheckBox -> 是什麼意思?
作者: GBKEE    時間: 2013-1-17 15:39

回復 3# qqchange

Public MyGroup() As New Class1
Public 陳述式 在模組層次中用來宣告公用變數,並配置儲存空間。
MyGroup() : 動態陣列變數  
As New Class1  指定為   新的Class1 物件

UBound, WithEvents  3.moudle1的語法不是很懂?   多看看VBA的說明就會懂了

作者: qqchange    時間: 2013-1-17 17:23

非常謝謝兩位版主的指教
全選時出現"陣列索引超出範圍" For i = 0 To UBound(MyGroup) 是什麼原因呢?
作者: Hsieh    時間: 2013-1-17 17:43

回復 5# qqchange
我測試並無此問題
你是否有編輯過VBA,然後就直接勾選全選
這樣MyGroup並未建立,必須先執行auto_open程序後才可以勾選
作者: qqchange    時間: 2013-1-18 11:48

本帖最後由 qqchange 於 2013-1-18 11:50 編輯

關閉檔案重新開啟就又可以了,是在編寫其他module有影響嗎:o
還有一個問題.選定加粗可以用Range嗎?要怎麼寫?
作者: Hsieh    時間: 2013-1-18 14:04

回復 7# qqchange
用Range來寫,這只是定位的問題
你試著去了解程式碼,就會知道,要變粗體的定位方式
是利用核取方塊的相對右下方儲存格做定位
若是你要特定其他範圍,就必須整理出對應的規則
作者: qqchange    時間: 2013-1-19 10:50

謝謝Hsieh的指導
作者: esperanto    時間: 2014-4-22 09:23

我也有類似的需求,
不知如何將所有的checkbox 指定相同的巨集?

沒用過物件類別,
但目前還是小學生,無法下載檔案
可否勞煩版主將範例檔寄給我呢?

謝謝




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