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