2017-06-02 102 views
1

我有一個包含20個複選框的用戶窗體框架,每個複選框代表一個不同顏色的襯衫。Excel VBA將多個複選框的結果合併到單個工作表單元格中

當用戶選中複選框時,我希望結果(標題,不是真/假)最終在活動行的單個單元格(第8列)中,用逗號分隔。

我是VBA編程和學習中的新手 - 任何人都可以請幫忙嗎?

回答

0

編輯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 
+0

這幾乎讓我在那裏,非常感謝!我只是在 ''如果cbk然後_' 語法錯誤我相信答案一定是在我的臉上! – hadtobe

+0

@hadtobe不知道你是什麼sysntax錯誤,得到了我運行它,它很好。儘管如此,你可以嘗試完成'If語句'。 – L42

相關問題