1
我有一個包含20個複選框的用戶窗體框架,每個複選框代表一個不同顏色的襯衫。Excel VBA將多個複選框的結果合併到單個工作表單元格中
當用戶選中複選框時,我希望結果(標題,不是真/假)最終在活動行的單個單元格(第8列)中,用逗號分隔。
我是VBA編程和學習中的新手 - 任何人都可以請幫忙嗎?
我有一個包含20個複選框的用戶窗體框架,每個複選框代表一個不同顏色的襯衫。Excel VBA將多個複選框的結果合併到單個工作表單元格中
當用戶選中複選框時,我希望結果(標題,不是真/假)最終在活動行的單個單元格(第8列)中,用逗號分隔。
我是VBA編程和學習中的新手 - 任何人都可以請幫忙嗎?
編輯1:刪除了續行_
If statement
。
創建一個子例程來檢查所有的Checkboxes
並將數據傳遞給選定的單元格。
嘗試是這樣的:
Private Sub GetSelection()
Dim c As MSForms.Control
Dim cbk As MSForms.CheckBox
Dim sel As String
For Each c In Me.Controls '/* Iterate all controls */
If TypeOf c Is MSForms.CheckBox Then '/* check if it is a checkbox */
Set cbk = c '/* Set as Checkbox to get the caption property */
If cbk Then '/* Check value, get caption if true */
If sel = "" Then
sel = cbk.Caption
Else
sel = sel & "," & cbk.Caption
End If
End If
End If
Next
'/* Transfer currently selected values in desired cell */
Sheet1.Range("H" & ActiveCell.Row).Value2 = sel '/* Used H for column 8 */
End Sub
然後,所有你需要做的就是把這個子程序中所有CheckBox_Click
事件。
Private Sub CheckBox1_Click()
GetSelection
End Sub
這幾乎讓我在那裏,非常感謝!我只是在 ''如果cbk然後_' 語法錯誤我相信答案一定是在我的臉上! – hadtobe
@hadtobe不知道你是什麼sysntax錯誤,得到了我運行它,它很好。儘管如此,你可以嘗試完成'If語句'。 – L42