返回列表 上一主題 發帖

excel 產生多個核取方塊.

excel 產生多個核取方塊.

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


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

回復 2# stillfish00


    感謝大大的幫助,今天找了一天了 囧...

TOP

回復 1# mulder_shiu
C.TopLeftCell.Row

TOP

請問如何取得核取方塊的行列位置呢?

本帖最後由 mulder_shiu 於 2013-9-10 19:26 編輯

Sub test()
S = 0
For Each C In ActiveSheet.CheckBoxes    '表單的控制項(核取方塊)
    S = S + IIf(C.Value = 1, 1, 0)
    If C.Value = 1 Then
       MsgBox C.Cells.Row    '當條件成立時,取得cells的行數和列數
    End If
Next
MsgBox S
End sub

請問大大ActiveSheet.CheckBoxes 當條件式成立時,我想取得當下cells的行數和列數??

MWSnap069.jpg (18.31 KB)

MWSnap069.jpg

TOP

最後跳出小視窗顯示一個「 0 」 請附檔看看



另外在請教一個問題,如果如圖的格式跑掉,該往哪邊檢查? ...
sworder12 發表於 2013-9-10 12:05



忘記補充...滾輪往下移之後,核取方塊會漸漸往上跑....

TOP

最後跳出小視窗顯示一個「 0 」 請附檔看看

活頁簿1.rar (6.26 KB)

另外在請教一個問題,如果如圖的格式跑掉,該往哪邊檢查?不知道google該怎麼搜尋...

TOP

本帖最後由 GBKEE 於 2013-9-9 06:09 編輯
回復  sworder12
最後跳出小視窗顯示一個「 0 」 請附檔看看
解決造成兩個核取方塊重疊.的程式碼
GBKEE 發表於 2013-9-8 13:56


97-2003版本以及2010版本我在家執行也一樣...


TOP

回復 18# sworder12
最後跳出小視窗顯示一個「 0 」 請附檔看看
解決造成兩個核取方塊重疊.的程式碼
  1. Option Explicit
  2. Sub Ex()
  3.     Dim C As Variant, B As Object, I As Integer, Rng(1 To 2) As Range
  4.     With ActiveSheet
  5.         Set Rng(1) = .Range("A:A").SpecialCells(2)  '處裡 A欗有資料的文字的 CheckBoxe
  6.         If .CheckBoxes.Count > 1 Then
  7.             For Each C In .CheckBoxes
  8.                 If Not Intersect(C.TopLeftCell.Offset(, -1), Rng(1).EntireColumn) Is Nothing Then
  9.                     If C.TopLeftCell.Offset(, -1) = "" Then
  10.                         C.TopLeftCell.Offset(, 1) = ""
  11.                         C.Delete
  12.                     Else
  13.                         C.Characters.Text = C.TopLeftCell.Offset(, -1)
  14.                         If Rng(2) Is Nothing Then
  15.                             Set Rng(2) = C.TopLeftCell.Offset(, -1)
  16.                         Else
  17.                             Set Rng(2) = Union(Rng(2), C.TopLeftCell.Offset(, -1)) '.Offset(, -1)
  18.                         End If
  19.                     End If
  20.                 End If
  21.             Next
  22.         End If
  23.         For Each C In Rng(1)        'Rng(2): CheckBoxe 的TopLeftCell儲存格
  24.             If Rng(2) Is Nothing Then
  25.                 Set B = .CheckBoxes.Add(C(1, 2).Left, C.Top, C.Width, C.Height)
  26.                 B.Characters.Text = C
  27.                 B.LinkedCell = C.Offset(, 2).Address
  28.             ElseIf Intersect(C, Rng(2)) Is Nothing Then
  29.                 Set B = .CheckBoxes.Add(C(1, 2).Left, C.Top, C.Width, C.Height)
  30.                 B.Characters.Text = C
  31.                 B.LinkedCell = C.Offset(, 2).Address
  32.             End If
  33.         Next
  34.     End With
  35. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回報一下
4F GBKEE 大大的還是沒辦法使用..最後跳出小視窗顯示一個「 0 」
9F oobird 大大的可正常使用
但想請教額外問題,如果其中整行內的資料有變動,但不是全部.
如果我重新執行巨集的話,會蓋到前一次生成出來的核取方塊,造成兩個核取方塊重疊.
有辦法避免嗎??

TOP

回復 13# GBKEE
謝謝你,真是一圖勝百言,解說詳盡

回復 14# stillfish00
謝謝你,你這整理的資料可真寶貴,昨天在網路沒查詢到資料(應該是關鍵字沒用對)
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

        靜思自在 : 不怕事多,只怕多事。
返回列表 上一主題