Làm cách nào để chỉ chọn một hộp kiểm trong một nhóm hộp kiểm trong Excel?
Như ảnh chụp màn hình bên dưới được hiển thị, đối với một nhóm hộp kiểm liệt kê ở hàng 2, khi chỉ chọn hoặc chọn một hộp kiểm, các hộp kiểm khác sẽ bị vô hiệu hóa. Làm thế nào để đạt được nó? Mã VBA trong bài viết này có thể giúp bạn.
Chỉ tạo một hộp kiểm để được chọn với mã VBA
Chỉ tạo một hộp kiểm để được chọn với mã VBA
Bạn có thể chạy các mã VBA dưới đây để chỉ chọn một hộp kiểm trong nhóm hộp kiểm mỗi lần. Hãy làm như sau.
1. Trước hết, hãy chèn các hộp kiểm khi bạn cần. Tại đây, bạn nên chèn Hộp kiểm ActiveX Control như ảnh chụp màn hình sau được hiển thị:
2. Sau đó nhấn Khác + Phím F11 đồng thời để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.
3. Trong phần mở đầu Microsoft Visual Basic cho các ứng dụng cửa sổ, nhấp Chèn > Mô-đun lớp học.
4. Thay đổi tên lớp thành clschk bên trong (Họ tên) hộp của Bất động sản , sau đó sao chép và dán mã VBA bên dưới vào Mã cửa sổ. Xem ảnh chụp màn hình:
Mã VBA 1: Chỉ chọn một hộp kiểm mỗi lần
Option Explicit
Public WithEvents Chk As MSForms.CheckBox
Private Sub Chk_Click()
Call SelOneCheckBox(Chk)
End Sub
Sub SelOneCheckBox(Target As Object)
Dim xObj As Object
Dim I As String
Dim n As Integer
If Target.Object.Value = True Then
I = Right(Target.Name, Len(Target.Name) - 8)
For n = 1 To ActiveSheet.OLEObjects.Count
If n <> Int(I) Then
Set xObj = ActiveSheet.OLEObjects.Item(n)
xObj.Object.Value = False
xObj.Object.Enabled = False
End If
Next
Else
I = Right(Target.Name, Len(Target.Name) - 8)
For n = 1 To ActiveSheet.OLEObjects.Count
If n <> Int(I) Then
Set xObj = ActiveSheet.OLEObjects.Item(n)
xObj.Object.Enabled = True
End If
Next
End If
End Sub
5. Bây giờ hãy nhấp vào Chèn > Mô-đun, sau đó sao chép và dán mã VBA bên dưới vào Mô-đun cửa sổ.
Mã VBA 2: Chỉ chọn một hộp kiểm mỗi lần
Dim xCollection As New Collection
Public Sub ClsChk_Init()
Dim xSht As Worksheet
Dim xObj As Object
Dim xChk As ClsChk
Set xSht = ActiveSheet
Set xCollection = Nothing
For Each xObj In xSht.OLEObjects
If xObj.Name Like "CheckBox**" Then
Set xChk = New ClsChk
Set xChk.Chk = CallByName(xSht, xObj.Name, VbGet)
xCollection.Add xChk
End If
Next
Set xChk = Nothing
End Sub
6. Nhấn nút F5 phím để chạy mã.
Kể từ bây giờ, khi chọn bất kỳ hộp kiểm nào trong trang tính, các hộp kiểm khác sẽ tự động bị vô hiệu hóa và bạn có thể bỏ chọn nó để kích hoạt lại tất cả các hộp kiểm.
Chú thích: Nếu hộp kiểm mới được thêm vào nhóm hộp kiểm, vui lòng chạy lại mã VBA để kích hoạt lại tất cả các hộp kiểm. Xóa hộp kiểm khỏi nhóm hộp kiểm cũng cần phải chạy lại mã.
Rbài báo phấn khởi:
- Làm cách nào để lọc dữ liệu dựa trên hộp kiểm trong Excel?
- Làm cách nào để ẩn hộp kiểm khi hàng bị ẩn trong Excel?
- Làm cách nào để đánh dấu ô hoặc hàng bằng hộp kiểm trong Excel?
- Làm cách nào để tạo danh sách thả xuống với nhiều hộp kiểm trong Excel?
- Làm cách nào để chèn dấu ngày tháng vào một ô nếu được chọn hộp kiểm trong Excel?
Công cụ năng suất văn phòng tốt nhất
Nâng cao kỹ năng Excel của bạn với Kutools for Excelvà trải nghiệm hiệu quả hơn bao giờ hết. Kutools for Excel Cung cấp hơn 300 tính năng nâng cao để tăng năng suất và tiết kiệm thời gian. Bấm vào đây để có được tính năng bạn cần nhất...
Office Tab Mang giao diện theo thẻ vào Office và giúp công việc của bạn dễ dàng hơn nhiều
- Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
- Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
- Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!














