返回列表 上一主題 發帖

[發問]Excel中的checkbox控制項勾選問題

[發問]Excel中的checkbox控制項勾選問題

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

圖片說明

add.jpg
2013-1-16 22:24


另外如何讓工作表裡的所有checkbox全部勾選及全部取消勾選?

回復 1# qqchange

使用物件類別讓所有的CheckBox有同樣的效果
物件類別.rar (12.76 KB)
play.gif
2013-1-16 23:53
學海無涯_不恥下問

TOP

我是學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 -> 是什麼意思?

TOP

回復 3# qqchange

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

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

TOP

非常謝謝兩位版主的指教
全選時出現"陣列索引超出範圍" For i = 0 To UBound(MyGroup) 是什麼原因呢?

TOP

回復 5# qqchange
我測試並無此問題
你是否有編輯過VBA,然後就直接勾選全選
這樣MyGroup並未建立,必須先執行auto_open程序後才可以勾選
學海無涯_不恥下問

TOP

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

關閉檔案重新開啟就又可以了,是在編寫其他module有影響嗎:o
還有一個問題.選定加粗可以用Range嗎?要怎麼寫?

TOP

回復 7# qqchange
用Range來寫,這只是定位的問題
你試著去了解程式碼,就會知道,要變粗體的定位方式
是利用核取方塊的相對右下方儲存格做定位
若是你要特定其他範圍,就必須整理出對應的規則
學海無涯_不恥下問

TOP

謝謝Hsieh的指導

TOP

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

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

謝謝

TOP

        靜思自在 : 吃苦了苦、苦盡廿來,享福了福、福盡悲來。
返回列表 上一主題