Note: The other languages of the website are Google-translated. Back to English

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 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:


Các công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2021 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ tính năng Dùng thử miễn phí 30 ngày. Bảo đảm hoàn lại tiền trong 60 ngày.
tab kte 201905

Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nê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!
officetab dưới cùng
Nhận xét (14)
Chưa có xếp hạng. Hãy là người đầu tiên xếp hạng!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào! Cảm ơn vì hướng dẫn hữu ích này! Tôi có một câu hỏi bổ sung: Tôi đang làm việc với cả cột và hàng. Nếu một giá trị hộp kiểm là đúng, tất cả các hộp kiểm trong cùng một hàng và cột phải bị vô hiệu hóa. Làm thế nào để làm điều đó? Tốt nhất, Morten
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Khi tôi đóng Excel và mở lại tệp, các hộp kiểm ngừng hoạt động, làm cách nào để khắc phục lỗi này?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,
Vui lòng lưu sổ làm việc dưới dạng Sổ làm việc hỗ trợ Macro Excel để lưu mã trong sổ làm việc. Nhưng khi bạn mở lại sổ làm việc, bạn cần vào cửa sổ mã để chạy mã theo cách thủ công trong cửa sổ Mô-đun để kích hoạt nó.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, có một con đường xung quanh? Tôi muốn sử dụng điều này cho nhiều người và tôi chắc chắn rằng họ sẽ không chạy mã mở sau ...
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Bonjour, Je suis dans la même tình huống. Dự kiến ​​có thể que le module de classe "ClsChk" se lance automatiquement au démarrage? 
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, tôi có câu hỏi tương tự. Có tùy chọn nào để mở Excel với hàm đang hoạt động không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, xin lỗi vì sự cố. Bạn có thể làm theo các bước dưới đây để giải quyết vấn đề. Lưu sổ làm việc dưới dạng Excel đã bật Macro Workbook (Nhấp vào Tập tin > Tiết kiệm như > chọn một thư mục đích> chọn "Sổ làm việc hỗ trợ macro Excel" bên trong Save as type danh sách thả xuống> Lưu); 2. Thêm mã sau vào Sổ làm việc này trình chỉnh sửa mã như được hiển thị trong ảnh chụp màn hình bên dưới.; 3. Lưu mã. Private Sub Workbook_Open ()
On Error Resume Next
ClsChk_Init
End Sub

Private Sub Workbook_SheetActivate (ByVal Sh As Object)
On Error Resume Next
ClsChk_Init
End Sub

Private Sub Workbook_SheetChange (ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
ClsChk_Init
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,
lỗi xuất hiện dưới mã đầu tiên.
xObj.Object.Value = Sai
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Arnold, bạn có nhận được bất kỳ hộp thư nhắc nhở nào không? và bạn đang sử dụng phiên bản Excel nào?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Nó hoạt động tốt nếu tất cả những gì bạn đang sử dụng là các hộp kiểm.
Nếu bạn thêm bất kỳ mục activeX nào khác và chỉ định điều khiển cho chúng, nó sẽ tạo ra lỗi mà Arnold đã đề cập.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Bạn thực sự cần giải thích cách truy cập vào tên lớp để thay đổi nó. Các bạn BTW, đó là F4 để mở cửa sổ bên trái màn hình và sau đó chỉnh sửa tên lớp.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi muốn nhận hình ảnh này chỉ từng hàng chứ không phải toàn bộ trang tính. Làm cách nào để sửa lỗi này? Tôi cũng không rành về vba lắm, nếu có thể làm ơn giúp tôi với.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào Min Ko Ko,
Nếu bạn chỉ muốn chọn từng hàng một tùy chọn, tôi khuyên bạn nên sử dụng kết hợp Nút tùy chọn (Điều khiển biểu mẫu) và Hộp nhóm (Điều khiển biểu mẫu).
1. Chỉ cần vẽ một Hộp Nhóm trong trang tính.
2. Giữ Hộp Nhóm được chọn, sau đó vẽ các Nút Tùy chọn bên trong hộp.
3. Lặp lại các bước để chèn hộp Nhóm mới và các Nút tùy chọn vào một hàng mới.
4. Vì hộp nhóm có tiêu đề và đường viền, bạn có thể áp dụng mã VBA bên dưới trong cửa sổ Mã mô-đun để ẩn tất cả tiêu đề và đường viền của hộp nhóm trong trang tính hiện tại.
Sub ToggleVosystem ()
Làm mờ myGB dưới dạng GroupBox
Đối với mỗi myGB Trong ActiveSheet.GroupBoxes
myGB.Vible = Sai
MyGB tiếp theo
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Bonjour, Merci pour ce hướng dẫn tout fonctionne. Cependant, je suis precisioné d'éxécuter manuellement le "ClsChk" à chaque fois pour que cela fonctionne, mon fichier est un fichierurupe pour la socialété, serait-il có thể qu'il se lance automatiquement? Merci d'avance.
Không có bình luận nào được đăng ở đây
Để lại ý kiến ​​của bạn
Đăng với tư cách khách
×
Đánh giá bài viết này:
0   Nhân vật
Các vị trí được đề xuất

Kết nối với chúng tôi

Bản quyền © 2009 - www.extendoffice.com. | Đã đăng ký Bản quyền. cung cấp bởi ExtendOffice. | BẢN ĐỒ CHI NHÁNH
Microsoft và logo Office là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Microsoft Corporation tại Hoa Kỳ và / hoặc các quốc gia khác.
Được bảo vệ bởi Sectigo SSL