วิธีบันทึกหรือรักษาการเลือกกล่องรายการ ActiveX ใน Excel
สมมติว่าคุณได้สร้างกล่องรายการและทำการเลือกในกล่องรายการอย่างไรก็ตามการเลือกทั้งหมดของกล่องรายการเหล่านี้จะหายไปเมื่อปิดและเปิดสมุดงานอีกครั้ง คุณต้องการเก็บการเลือกไว้ในกล่องรายการเมื่อใดก็ตามที่ปิดและเปิดสมุดงานใหม่หรือไม่? วิธีการในบทความนี้สามารถช่วยคุณได้
บันทึกหรือรักษาการเลือกของกล่องรายการ ActiveX ด้วยรหัส VBA ใน Excel
บันทึกหรือรักษาการเลือกของกล่องรายการ ActiveX ด้วยรหัส VBA ใน Excel
โค้ด VBA ด้านล่างสามารถช่วยคุณบันทึกหรือรักษาการเลือกได้หากกล่องรายการ ActiveX ใน Excel กรุณาดำเนินการดังนี้
1. ในสมุดงานมีกล่องรายการ ActiveX ที่คุณต้องการเก็บการเลือกไว้ให้กดปุ่ม อื่น ๆ + F11 พร้อมกันเพื่อเปิดไฟล์ Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง
2 ใน Microsoft Visual Basic สำหรับแอปพลิเคชัน ดับเบิลคลิก สมุดงานนี้ ในบานหน้าต่างด้านซ้ายเพื่อเปิดไฟล์ สมุดงานนี้ รหัส หน้าต่าง. จากนั้นคัดลอกรหัส VBA ต่อไปนี้ลงในหน้าต่างรหัส
รหัส VBA: บันทึกการเลือกกล่องรายการ ActiveX ใน Excel
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim I As Long
Dim J As Long
Dim K As Long
Dim KK As Long
Dim xSheet As Worksheet
Dim xListBox As Object
On Error GoTo Label
Application.DisplayAlerts = False
Application.ScreenUpdating = False
K = 0
KK = 0
If Not Sheets("ListBox Data") Is Nothing Then
Sheets("ListBox Data").Delete
End If
Label:
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "ListBox Data"
Set xSheet = Sheets("ListBox Data")
For I = 1 To Sheets.Count
For Each xListBox In Sheets(I).OLEObjects
If xListBox.Name Like "ListBox*" Then
With xListBox.Object
For J = 0 To .ListCount - 1
If .Selected(J) Then
xSheet.Range("A1").Offset(K, KK).Value = "True"
Else
xSheet.Range("A1").Offset(K, KK).Value = "False"
End If
K = K + 1
Next
End With
K = 0
KK = KK + 1
End If
Next
Next
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Private Sub Workbook_Open()
Dim I As Long
Dim J As Long
Dim KK As Long
Dim xRg As Range
Dim xCell As Range
Dim xListBox As Object
Application.DisplayAlerts = False
Application.ScreenUpdating = False
KK = 0
For I = 1 To Sheets.Count - 1
For Each xListBox In Sheets(I).OLEObjects
If xListBox.Name Like "ListBox*" Then
With xListBox.Object
Set xRg = Intersect(Sheets("ListBox Data").Range("A1").Offset(0, KK).EntireColumn, Sheets("ListBox Data").UsedRange)
For J = 1 To .ListCount
Set xCell = xRg(J)
If xCell.Value = "True" Then
.Selected(J - 1) = True
End If
Next
KK = KK + 1
End With
End If
Next
Next
Sheets("ListBox Data").Delete
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
3 กด อื่น ๆ + Q ปุ่มเพื่อปิดไฟล์ Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง
4. ตอนนี้ คุณต้องบันทึกสมุดงานเป็นสมุดงานที่เปิดใช้งาน Excel Macro กรุณาคลิก เนื้อไม่มีมัน > บันทึกเป็น > หมวดหมู่สินค้า.
5 ใน บันทึกเป็น กล่องโต้ตอบ เลือกโฟลเดอร์ที่จะบันทึกสมุดงาน เปลี่ยนชื่อตามที่คุณต้องการ เลือก สมุดงานที่เปิดใช้งานแมโคร Excel ใน บันทึกเป็นชนิด รายการแบบเลื่อนลง และสุดท้ายให้คลิก ลด ปุ่ม. ดูภาพหน้าจอ:
โปรดบันทึกสมุดงานทุกครั้งเมื่อคุณอัปเดตกล่องรายการ จากนั้นการเลือกก่อนหน้านี้ทั้งหมดจะถูกเก็บไว้ในกล่องรายการหลังจากเปิดสมุดงานอีกครั้ง
หมายเหตุ: เมื่อบันทึกสมุดงานจะมีแผ่นงานชื่อ “ข้อมูลกล่องรายการ” จะถูกสร้างขึ้นโดยอัตโนมัติในตอนท้ายของแผ่นงานทั้งหมดในสมุดงานของคุณ โปรดละเว้นแผ่นงานนี้เพราะมันจะหายไปโดยอัตโนมัติเมื่อปิดสมุดงาน
สุดยอดเครื่องมือเพิ่มผลผลิตในสำนักงาน
เพิ่มพูนทักษะ Excel ของคุณด้วย Kutools สำหรับ Excel และสัมผัสประสิทธิภาพอย่างที่ไม่เคยมีมาก่อน Kutools สำหรับ Excel เสนอคุณสมบัติขั้นสูงมากกว่า 300 รายการเพื่อเพิ่มประสิทธิภาพและประหยัดเวลา คลิกที่นี่เพื่อรับคุณสมบัติที่คุณต้องการมากที่สุด...
แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก
- เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
- เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
- เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!