在 Excel 中選中復選框時如何取消選中另一個復選框?
如下圖所示,假設有一個采購清單需要您最終確定。 在查看列表時,您發現某些類別的選中項目超出預算,需要重新選擇。 由于列表太長,您現在需要一種更有效的方法來在類別中選中新復選框時自動取消選中原始選中的復選框。 本教程逐步演示了該方法,以幫助您完成它。
當使用 VBA 代碼選中一個新復選框時,取消選中另一個復選框
當使用 VBA 代碼選中一個新復選框時,取消選中另一個復選框
如上例所示,十個復選框命名為 復選框1, 復選框2, 復選框3,..., 復選框10 分為 3 組,位于表中的不同類別中。
本例中,Checkbox1、2、3為一組,Checkbox4、5、6、7為一組,Checkbox8、9,10、XNUMX為一組。 在每個組中,一次只允許選中一個復選框。 選中一個復選框時,會自動取消選中另一個復選框。
現在讓我們看看如何應用下面的 VBA 代碼來解決這個問題。
1.右鍵單擊工作表選項卡,然后單擊 查看代碼 從上下文菜單。
2.在開 Microsoft Visual Basic應用程序 窗口,將以下 VBA 代碼粘貼到 表(代碼) 窗口。
VBA代碼:選中新復選框時取消選中另一個復選框
Dim xBol As Boolean
Updated by Extendoffice 20220816
Private Sub CheckBox1_Change()
SetCheckBoxes "CheckBox1"
End Sub
Private Sub CheckBox2_Change()
SetCheckBoxes "CheckBox2"
End Sub
Private Sub CheckBox3_Change()
SetCheckBoxes "CheckBox3"
End Sub
Private Sub CheckBox4_Change()
SetCheckBoxes "CheckBox4"
End Sub
Private Sub CheckBox5_Change()
SetCheckBoxes "CheckBox5"
End Sub
Private Sub CheckBox6_Click()
SetCheckBoxes "CheckBox6"
End Sub
Private Sub CheckBox7_Click()
SetCheckBoxes "CheckBox7"
End Sub
Private Sub CheckBox8_Click()
SetCheckBoxes "CheckBox8"
End Sub
Private Sub CheckBox9_Click()
SetCheckBoxes "CheckBox9"
End Sub
Private Sub CheckBox10_Click()
SetCheckBoxes "CheckBox10"
End Sub
Private Function SetCheckBoxes(mCheckBoxName As String)
Dim x As Long
Dim xAllArr
Dim xArrItem
Dim xI, xJ
If Not xBol Then Exit Function
In the following line, the checkboxes enclosed in double quotes belong to the same group, and each checkbox is separated by a comma. To add more checkbox groups, please enclose the checkboxes in new double quotes.
xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", "CheckBox4,CheckBox5,CheckBox6,CheckBox7", "CheckBox8,CheckBox9,CheckBox10")
For xI = LBound(xAllArr) To UBound(xAllArr)
If InStr(xAllArr(xI), mCheckBoxName) > 0 Then
xBol = False
xArrItem = Split(xAllArr(xI), ",")
For xJ = LBound(xArrItem) To UBound(xArrItem)
If xArrItem(xJ) <> mCheckBoxName Then
Me.OLEObjects(xArrItem(xJ)).Object.Value = False
End If
Next
End If
Next
xBol = True
End Function
Private Sub Worksheet_Activate()
xBol = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
xBol = True
End Sub
:
1)在代碼中, 復選框1,復選框2, ..., 復選框10 是復選框的名稱;
2) 在下一行中,雙引號中的復選框屬于同一組,每個復選框用逗號分隔。 要添加更多復選框組,請將復選框括在新的雙引號中。
xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", "CheckBox4,CheckBox5,CheckBox6,CheckBox7", "CheckBox8,CheckBox9,CheckBox10")
3)復選框是 ActiveX控件 復選框。
3。 按 其他 + Q 關閉鍵 Microsoft Visual Basic應用程序 窗口。
然后,當您選中組中的新復選框時,原始選中的復選框將自動取消選中,如下面的 gif 所示。
演示:在 Excel 中選中復選框時取消選中另一個復選框
Kutools for Excel 包括 300 多種適用于 Microsoft Excel 的強大功能。 免費試用,不受限制 30 天。 現在下載!
最佳辦公生產力工具
將小時轉化為分鐘 Kutools for Excel!
準備好增強您的 Excel 任務了嗎? 利用的力量 Kutools for Excel - 您終極的節省時間的工具。 簡化復雜的任務并像專業人士一樣瀏覽數據。 以閃電般的速度體驗 Excel!
為什么需要 Kutools for Excel
??? 超過 300 項強大功能: Kutools 包含 300 多項高級功能,可簡化您在 1500 多種場景中的工作。
?? 卓越的數據處理能力:合并單元格、刪除重復項并執行高級數據轉換 - 所有這些都不費吹灰之力!
?? 高效的批量操作:當你可以聰明地工作時,為什么還要付出額外的努力呢? 輕松批量導入、導出、組合和調整數據。
?? 可定制的圖表和報告:訪問各種附加圖表并生成富有洞察力的報告。
??? 強大的導航窗格:通過強大的列管理器、工作表管理器和自定義收藏夾獲得優勢。
?? 七種類型的下拉列表:通過各種功能和類型的下拉列表使數據輸入變得輕而易舉。
?? 用戶友好:對于初學者來說輕而易舉,對于專家來說是一個強大的工具。

立即下載,與 Excel 一起穿越時空!
閱讀更多
免費下載... 采購...
Office Tab 為 Office 帶來選項卡式界面,讓您的工作更輕松
在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
在同一窗口的新選項卡中而不是在新窗口中打開并創建多個文檔。
每天將您的工作效率提高50%,并減少數百次鼠標單擊!