ไปยังเนื้อหาหลัก

จะอนุญาตให้เลือกช่องกาเครื่องหมายได้เพียงช่องเดียวในกลุ่มใน Excel ได้อย่างไร?

ผู้เขียน : ซิลูเวีย แก้ไขล่าสุด: 2024-10-31

ตามที่แสดงในภาพหน้าจอด้านล่าง สำหรับกลุ่มของช่องกาเครื่องหมายที่แสดงอยู่ในแถวที่ 2 เมื่อเลือกหรือกาเครื่องหมายในช่องกาเครื่องหมายหนึ่ง ช่องกาเครื่องหมายอื่นๆ ทั้งหมดจะถูกปิดใช้งานโดยอัตโนมัติ จะทำได้อย่างไร โค้ด VBA ในบทความนี้สามารถช่วยคุณได้

ภาพหน้าจอของกลุ่มกล่องกาเครื่องหมายใน Excel ที่สามารถเลือกได้ครั้งละหนึ่งรายการเท่านั้น

เลือกช่องทำเครื่องหมายเพียงช่องเดียวด้วยรหัส VBA


เลือกช่องทำเครื่องหมายเพียงช่องเดียวด้วยรหัส VBA

คุณสามารถเรียกใช้รหัส VBA ด้านล่างเพื่อเลือกช่องทำเครื่องหมายเพียงช่องเดียวในกลุ่มช่องทำเครื่องหมายต่อครั้ง กรุณาดำเนินการดังนี้

1. ประการแรกโปรดใส่ช่องทำเครื่องหมายตามที่คุณต้องการ ที่นี่คุณควรแทรกไฟล์ กล่องกาเครื่องหมาย ActiveX Control ตามภาพหน้าจอต่อไปนี้:

ภาพหน้าจอแสดงการแทรกกล่องกาเครื่องหมาย ActiveX Control ใน Excel

2. จากนั้นกด อื่น ๆ + F11 พร้อมกันเพื่อเปิดไฟล์ Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง

3. ในการเปิด Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่างคลิก สิ่งที่ใส่เข้าไป > โมดูลคลาส.

ภาพหน้าจอแสดงตัวเลือกในการแทรกโมดูลคลาสใน Excel VBA

4. เปลี่ยนชื่อคลาสเป็น ClsChk ใน (Name) กล่องของ อสังหาริมทรัพย์ บานหน้าต่างจากนั้นคัดลอกและวางรหัส VBA ด้านล่างลงในที่เกี่ยวข้อง รหัส หน้าต่าง. ดูภาพหน้าจอ:

ภาพหน้าจอของแผงคุณสมบัติใน VBA สำหรับการเปลี่ยนชื่อคลาสเป็น ClsChk

รหัส 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 กุญแจสำคัญในการเรียกใช้รหัส

นับจากนี้เป็นต้นไป เมื่อทำเครื่องหมายในช่องกาเครื่องหมายใดๆ ในเวิร์กชีต ช่องกาเครื่องหมายอื่นๆ ทั้งหมดจะถูกปิดใช้งานโดยอัตโนมัติ และคุณสามารถยกเลิกการเลือกเพื่อเปิดใช้งานช่องกาเครื่องหมายทั้งหมดอีกครั้ง

ภาพหน้าจอของช่องกาเครื่องหมายใน Excel ที่เปิดใช้งานได้ครั้งละหนึ่งช่องหลังจากดำเนินการโค้ด VBA

หมายเหตุ: หากมีการเพิ่มช่องทำเครื่องหมายใหม่ในกลุ่มช่องทำเครื่องหมายโปรดเรียกใช้รหัส VBA อีกครั้งเพื่อเปิดใช้งานช่องทำเครื่องหมายทั้งหมดอีกครั้ง การลบช่องทำเครื่องหมายออกจากกลุ่มช่องทำเครื่องหมายจำเป็นต้องเรียกใช้รหัสซ้ำเช่นกัน


บทความที่เกี่ยวข้อง:

สุดยอดเครื่องมือเพิ่มผลผลิตในสำนักงาน

🤖 Kutools AI ผู้ช่วย: ปฏิวัติการวิเคราะห์ข้อมูลโดยยึดตาม: การดำเนินการที่ชาญฉลาด   |  สร้างรหัส  |  สร้างสูตรที่กำหนดเอง  |  วิเคราะห์ข้อมูลและสร้างแผนภูมิ  |  เรียกใช้ฟังก์ชัน Kutools...
คุณสมบัติยอดนิยม: ค้นหา เน้น หรือระบุรายการที่ซ้ำกัน   |  ลบแถวว่าง   |  รวมคอลัมน์หรือเซลล์โดยไม่สูญเสียข้อมูล   |   รอบโดยไม่มีสูตร ...
การค้นหาขั้นสูง: VLookup หลายเกณฑ์    VLookup หลายค่า  |   VLookup ข้ามหลายแผ่น   |   การค้นหาที่ไม่ชัดเจน ....
รายการแบบเลื่อนลงขั้นสูง: สร้างรายการแบบหล่นลงอย่างรวดเร็ว   |  รายการแบบหล่นลงขึ้นอยู่กับ   |  เลือกหลายรายการแบบหล่นลง ....
ผู้จัดการคอลัมน์: เพิ่มจำนวนคอลัมน์เฉพาะ  |  ย้ายคอลัมน์  |  สลับสถานะการมองเห็นของคอลัมน์ที่ซ่อนอยู่  |  เปรียบเทียบช่วงและคอลัมน์ ...
คุณสมบัติเด่น: กริดโฟกัส   |  มุมมองการออกแบบ   |   บาร์สูตรใหญ่    สมุดงานและตัวจัดการชีต   |  ห้องสมุดทรัพยากร (ข้อความอัตโนมัติ)   |  เลือกวันที่   |  รวมแผ่นงาน   |  เข้ารหัส/ถอดรหัสเซลล์    ส่งอีเมลตามรายการ   |  ซุปเปอร์ฟิลเตอร์   |   ตัวกรองพิเศษ (กรองตัวหนา/ตัวเอียง/ขีดทับ...) ...
ชุดเครื่องมือ 15 อันดับแรก12 ข้อความ เครื่องมือ (เพิ่มข้อความ, ลบอักขระ, ... )   |   50 + แผนภูมิ ประเภท (แผนภูมิ Gantt, ... )   |   40+ ใช้งานได้จริง สูตร (คำนวณอายุตามวันเกิด, ... )   |   19 การแทรก เครื่องมือ (ใส่ QR Code, แทรกรูปภาพจากเส้นทาง, ... )   |   12 การแปลง เครื่องมือ (ตัวเลขเป็นคำ, การแปลงสกุลเงิน, ... )   |   7 ผสานและแยก เครื่องมือ (แถวรวมขั้นสูง, แยกเซลล์, ... )   |   ... และอื่น ๆ

เพิ่มพูนทักษะ Excel ของคุณด้วย Kutools สำหรับ Excel และสัมผัสประสิทธิภาพอย่างที่ไม่เคยมีมาก่อน Kutools สำหรับ Excel เสนอคุณสมบัติขั้นสูงมากกว่า 300 รายการเพื่อเพิ่มประสิทธิภาพและประหยัดเวลา  คลิกที่นี่เพื่อรับคุณสมบัติที่คุณต้องการมากที่สุด...


แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!