返回列表 上一主題 發帖

excel 產生多個核取方塊.

excel 產生多個核取方塊.

我有一個表單需製作,內容是根據我給予的文字,按照文字來產生各個核取方塊.
範例如圖


因為我有上百段需要設定成為核取方塊...目前是一個一個看著文字後輸入..很慢...

  1. Sub test()
  2.     For Each c In ActiveSheet.Cells.SpecialCells(2)
  3.         Set b = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", _
  4.                                            Left:=c(1, 2).Left, Top:=c.Top, Width:=c.Width, Height:=c.Height)
  5.         b.Object.Caption = c.Value
  6.     Next
  7. End Sub
複製代碼

TOP

感謝版主,在家用office 2010測試正常,
因為我需要用 true/false 做計數功能.但公司版本是舊版的,不像新版的那麼方便,可以直接按屬性->LinkedCell


請問在舊版的 excel 如何開啟屬性呢?試了許久試不出來....:(

TOP

回復 3# sworder12
2003版可用
  1. Option Explicit
  2. Sub Ex()
  3.     Dim S As Integer, C As Variant
  4.     For Each C In ActiveSheet.OLEObjects
  5.         If C.Name Like "CheckBox*" Then
  6.             S = S + IIf(C.Object.Value, 1, 0)
  7.         End If
  8.     Next
  9.     MsgBox S
  10. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 4# GBKEE


請問用2#作出來 核取方塊 可以統計勾選數量

若用人工插入的 核取方塊 為何無法統計勾選數量,需要在設定甚麼
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 5# ML089

  1. Option Explicit
  2. Sub Ex()
  3.     Dim S As Integer, C As Variant
  4.     For Each C In ActiveSheet.OLEObjects   '控制工具箱的控制項 (MSForms.CheckBox)
  5.         If C.Name Like "CheckBox*" Then
  6.             S = S + IIf(C.Object.Value, 1, 0)
  7.         End If
  8.     Next
  9.     MsgBox S
  10.     S = 0
  11.     For Each C In ActiveSheet.CheckBoxes    '表單的控制項(核取方塊)
  12.             S = S + IIf(C.Value = 1, 1, 0)
  13.     Next
  14.     MsgBox S
  15. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 ML089 於 2013-9-5 17:31 編輯

回復 6# GBKEE


    原來 CheckBox 與 核取方塊不同,謝謝你詳細的解說

   這兩個使用上有何差別?
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 7# ML089
控制工具箱的控制項,可寫VBA

感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

若你想用LinkedCell屬性計算,那就是表單工具的核取方塊了,可改成這樣:(例如LinkedCell放在m欄)
  1. Sub test()
  2.     For Each c In ActiveSheet.Cells.SpecialCells(2)
  3.         Set b = ActiveSheet.CheckBoxes.Add(c(1, 2).Left, c.Top, c.Width, c.Height)
  4.         b.Characters.Text = c.Value
  5.         i = i + 1
  6.         b.LinkedCell = Cells(i, 13).Address
  7.     Next
  8. End Sub
複製代碼

TOP

回復 9# oobird


    結果如圖:

TOP

        靜思自在 : 一個缺口的杯子,如果換一個角度看它,它仍然是圓的。
返回列表 上一主題