จะอนุญาตให้เลือกช่องกาเครื่องหมายได้เพียงช่องเดียวในกลุ่มใน Excel ได้อย่างไร?
ตามที่แสดงในภาพหน้าจอด้านล่าง สำหรับกลุ่มของช่องกาเครื่องหมายที่แสดงอยู่ในแถวที่ 2 เมื่อเลือกหรือกาเครื่องหมายในช่องกาเครื่องหมายหนึ่ง ช่องกาเครื่องหมายอื่นๆ ทั้งหมดจะถูกปิดใช้งานโดยอัตโนมัติ จะทำได้อย่างไร โค้ด VBA ในบทความนี้สามารถช่วยคุณได้
เลือกช่องทำเครื่องหมายเพียงช่องเดียวด้วยรหัส VBA
เลือกช่องทำเครื่องหมายเพียงช่องเดียวด้วยรหัส VBA
คุณสามารถเรียกใช้รหัส VBA ด้านล่างเพื่อเลือกช่องทำเครื่องหมายเพียงช่องเดียวในกลุ่มช่องทำเครื่องหมายต่อครั้ง กรุณาดำเนินการดังนี้
1. ประการแรกโปรดใส่ช่องทำเครื่องหมายตามที่คุณต้องการ ที่นี่คุณควรแทรกไฟล์ กล่องกาเครื่องหมาย ActiveX Control ตามภาพหน้าจอต่อไปนี้:
2. จากนั้นกด อื่น ๆ + F11 พร้อมกันเพื่อเปิดไฟล์ Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง
3. ในการเปิด Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่างคลิก สิ่งที่ใส่เข้าไป > โมดูลคลาส.
4. เปลี่ยนชื่อคลาสเป็น ClsChk ใน (Name) กล่องของ อสังหาริมทรัพย์ บานหน้าต่างจากนั้นคัดลอกและวางรหัส VBA ด้านล่างลงในที่เกี่ยวข้อง รหัส หน้าต่าง. ดูภาพหน้าจอ:
รหัส VBA 1: เลือกช่องทำเครื่องหมายหนึ่งช่องต่อครั้งเท่านั้น
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. ตอนนี้คลิก สิ่งที่ใส่เข้าไป > โมดูลจากนั้นคัดลอกและวางโค้ด VBA ด้านล่างลงในไฟล์ โมดูล หน้าต่าง
รหัส VBA 2: เลือกช่องทำเครื่องหมายหนึ่งช่องต่อครั้งเท่านั้น
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 กด F5 กุญแจสำคัญในการเรียกใช้รหัส
นับจากนี้เป็นต้นไป เมื่อทำเครื่องหมายในช่องกาเครื่องหมายใดๆ ในเวิร์กชีต ช่องกาเครื่องหมายอื่นๆ ทั้งหมดจะถูกปิดใช้งานโดยอัตโนมัติ และคุณสามารถยกเลิกการเลือกเพื่อเปิดใช้งานช่องกาเครื่องหมายทั้งหมดอีกครั้ง
หมายเหตุ: หากมีการเพิ่มช่องทำเครื่องหมายใหม่ในกลุ่มช่องทำเครื่องหมายโปรดเรียกใช้รหัส VBA อีกครั้งเพื่อเปิดใช้งานช่องทำเครื่องหมายทั้งหมดอีกครั้ง การลบช่องทำเครื่องหมายออกจากกลุ่มช่องทำเครื่องหมายจำเป็นต้องเรียกใช้รหัสซ้ำเช่นกัน
บทความที่เกี่ยวข้อง:
- วิธีกรองข้อมูลตามช่องทำเครื่องหมายใน Excel
- วิธีซ่อนช่องทำเครื่องหมายเมื่อซ่อนแถวใน Excel
- วิธีการเน้นเซลล์หรือแถวด้วยช่องทำเครื่องหมายใน Excel
- วิธีสร้างรายการแบบหล่นลงพร้อมช่องทำเครื่องหมายหลายช่องใน Excel
- จะแทรกการประทับวันที่ลงในเซลล์ได้อย่างไรหากเลือกช่องทำเครื่องหมายใน Excel
สุดยอดเครื่องมือเพิ่มผลผลิตในสำนักงาน
เพิ่มพูนทักษะ Excel ของคุณด้วย Kutools สำหรับ Excel และสัมผัสประสิทธิภาพอย่างที่ไม่เคยมีมาก่อน Kutools สำหรับ Excel เสนอคุณสมบัติขั้นสูงมากกว่า 300 รายการเพื่อเพิ่มประสิทธิภาพและประหยัดเวลา คลิกที่นี่เพื่อรับคุณสมบัติที่คุณต้องการมากที่สุด...
แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก
- เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
- เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
- เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!