เมื่อเราสร้างรูปแบบผู้ใช้จะใช้ข้อมูลเป็นอินพุตจากผู้ใช้ แต่ข้อมูลที่จัดให้ในแบบฟอร์มไม่ได้ปิดตัวเองดังนั้นจึงอาจทำให้ผู้ใช้เข้าใจผิดในการป้อนข้อมูลอีกครั้งเราใช้คำสั่งที่แตกต่างกันสองคำสั่งเพื่อปิดรูปแบบผู้ใช้เมื่ออินพุตมี ได้รับและเป็นวิธี Unload me เพื่อปิด userform หรือเราสามารถใช้วิธี userform.hide
Excel VBA ปิด Userform
รูปแบบผู้ใช้มีความสำคัญในขณะที่รับข้อมูลจากผู้ใช้ซึ่งเป็นส่วนหนึ่งของโครงการ VBA โดยปกติเราจะออกแบบฟอร์มผู้ใช้ก่อนที่จะนำเสนอต่อหน้าผู้ใช้ เมื่อการออกแบบแบบฟอร์มผู้ใช้ VBA เสร็จสมบูรณ์เราจำเป็นต้องแสดงแบบเดียวกันต่อหน้าผู้ใช้และต้องมีการเข้ารหัส VBA ในทำนองเดียวกันการปิด Userform ต้องใช้ความรู้ในการเข้ารหัส VBA
ในบทความนี้เราจะแสดงวิธีปิด userform ในการเข้ารหัส VBA
วิธีปิด UserForm ใน Excel VBA
เมื่อวัตถุประสงค์ของแบบฟอร์มผู้ใช้เสร็จสิ้นแล้วจะมีจุดหนึ่งที่ต้องแสดงฟอร์มผู้ใช้ต่อหน้าผู้ใช้ดังนั้นเราจำเป็นต้องปิดฟอร์มผู้ใช้ เราสามารถปิด Userform ได้โดยใช้คำสั่ง“ Unload Me” และคำสั่ง“ UserForm.Hide” แม้ว่าทั้งสองจะแตกต่างกันเล็กน้อย แต่ก็จะตอบสนองวัตถุประสงค์ของเราในที่สุด
คุณสามารถดาวน์โหลด VBA Close UserForm Excel Template ได้ที่นี่ - VBA Close UserForm Excel Template# 1 - ปิด Userform โดยใช้คำสั่ง“ Unload Me” ใน VBA
ตัวอย่างเช่นดูภาพด้านล่างของฟอร์มผู้ใช้
ฉันตั้งชื่อฟอร์มผู้ใช้ว่า“ MyUserForm”
หากฉันเรียกใช้ฟอร์มผู้ใช้เราจะเห็นรูปแบบผู้ใช้ดังต่อไปนี้
ฉันต้องการกรอกรายละเอียดที่จำเป็นเมื่อกรอกข้อมูลแล้วหากฉันคลิกที่ปุ่มส่งข้อมูลจะจับข้อมูลเดียวกันไปยังแผ่นงานซึ่งมองเห็นได้ทางด้านซ้าย
เมื่อคลิกปุ่มส่งมันได้บันทึกข้อมูลที่ฉันได้ป้อนลงในฟอร์มผู้ใช้
หากคุณสังเกตเห็นเรามีอีกหนึ่งปุ่มที่เรียกว่า“ ยกเลิก” สิ่งนี้ทำอะไร?
ก่อนที่เราจะแสดงฟอร์มผู้ใช้เราจำเป็นต้องกำหนดค่าปุ่มนี้ ตอนนี้ฉันจะกลับไปแก้ไข Visual Basic เพื่อกำหนดค่าปุ่มนี้
ตอนนี้ฉันจะดับเบิลคลิกที่ปุ่มยกเลิกและจะเปิดขั้นตอนย่อย VBA อัตโนมัติดังที่แสดงด้านล่าง
ในขั้นตอนนี้เราต้องเขียนโค้ด VBA เกี่ยวกับสิ่งที่จะเกิดขึ้นหากเราคลิกปุ่มยกเลิก เมื่อเราคลิกที่ปุ่มยกเลิกนี้ควรปิดแบบฟอร์มผู้ใช้ที่เรากำลังดำเนินการอยู่ในขณะนี้
ดังนั้นเขียนโค้ดว่า“ Unload Me”
รหัส:
Private Sub CancelButton_Click () Unload Me End Sub
“ Unload Me” คือคำที่เราใช้เพื่อปิด Userform ที่เรากำลังดำเนินการอยู่ แบบฟอร์มผู้ใช้ที่นี่รู้จักคำว่า“ ฉัน” เป็น UserForm เอง
“ ยกเลิกการโหลดฉัน” สามารถใช้ได้กับโพรซีเดอร์ฟอร์มผู้ใช้นั้นเท่านั้นเราไม่สามารถเรียกคำสั่งนี้ในโมดูลอื่นได้ หากถูกเรียกจะแสดงข้อความแสดงข้อผิดพลาดเป็น "การใช้คำหลักของฉันไม่ถูกต้อง "
ตกลงมาเรียกใช้รหัสโดยใช้ปุ่ม F5 หรือด้วยตนเองตอนนี้เราจะเห็นแบบฟอร์มผู้ใช้ว่างเปล่า
กรอกข้อมูลและคลิกที่ส่ง
เมื่อคลิกปุ่มส่งแล้วจะจัดเก็บค่าไว้ในเซลล์ที่กล่าวถึง
ถ้าป้อนข้อมูลเสร็จเราจำเป็นต้องปิด userform ไม่ใช่หรอ ??
คลิกที่ปุ่มยกเลิกเพื่อปิดฟอร์มผู้ใช้มันจะปิดแบบฟอร์มผู้ใช้
# 2 - ปิด UserForm โดยใช้วิธีซ่อนใน Excel VBA
นอกจากนี้เรายังสามารถปิด Userform โดยใช้วิธี "ซ่อน" ได้เช่นกันใน VBA อีกครั้งฉันจะดับเบิลคลิกที่ปุ่มยกเลิกเพื่อดูขั้นตอนย่อยส่วนตัว
เนื่องจากเราได้เขียนโค้ดเพื่อปิด userform แล้วเราจึงสามารถดูโค้ดที่มีอยู่ใน VBA ได้ ตอนนี้ฉันจะลบสิ่งนี้
ในการใช้วิธีซ่อนเราจำเป็นต้องเรียกแบบฟอร์มผู้ใช้ด้วยชื่อ ในกรณีนี้ชื่อแบบฟอร์มผู้ใช้ของเราคือ“ MyUserForm”
หลังจากกล่าวถึงฟอร์มผู้ใช้ตามชื่อหากเราใส่จุด (.) เราจะเห็นคุณสมบัติและวิธีการทั้งหมดของแบบฟอร์มผู้ใช้นี้ ตอนนี้ฉันจะเลือกวิธี "ซ่อน"
โอเคเรามาเรียกใช้ฟอร์มผู้ใช้อีกครั้ง เราจะเห็นฟอร์มผู้ใช้ว่างให้กรอกรายละเอียดก่อน
ตอนนี้ไม่ต้องคลิกที่ปุ่มส่งฉันจะคลิกปุ่มยกเลิกมันจะซ่อนแบบฟอร์มผู้ใช้
ความแตกต่างระหว่างยกเลิกการโหลดและซ่อนใน Excel VBA
คุณต้องมีคำถามว่าความแตกต่างระหว่าง Unload & Hide คืออะไรโดยที่ทั้งสองมีจุดประสงค์ที่คล้ายคลึงกัน มีความแตกต่างระหว่างสองสิ่งนี้ ก่อนอื่นฉันจะใช้คำสั่ง Unload Me ดูภาพด้านล่าง
ฉันได้ป้อนข้อมูลในแบบฟอร์มผู้ใช้ แต่ยังไม่ได้ส่งข้อมูล ถ้าฉันคลิกที่ยกเลิกมันจะยกเลิกการโหลดฟอร์มผู้ใช้
อีกครั้งฉันจะเรียกใช้รหัสผ่านทางคีย์ลัด excel F5 หรือด้วยตนเองมันจะแสดง Userform ว่าง
แม้ว่าฉันจะป้อนข้อมูลอย่างถูกต้องโดยไม่ได้ตั้งใจฉันก็คลิกที่ปุ่มยกเลิกเมื่อแบบฟอร์มผู้ใช้ใหม่ปรากฏขึ้นอีกครั้งฉันได้กรอกข้อมูลตั้งแต่ต้น
ตอนนี้ฉันจะใช้วิธี“ ซ่อน”
ไม่ฉันจะคลิกที่ปุ่มยกเลิกมันจะซ่อนรูปแบบผู้ใช้ที่มองเห็นได้ แต่เมื่อฉันเรียกใช้แมโครอีกครั้งมันจะกลับมาพร้อมกับข้อมูลที่ฉันได้ป้อนไว้ในฟอร์มผู้ใช้
นี่คือวิธีที่เราสามารถใช้คำสั่ง“ ยกเลิกการโหลด” และวิธี“ ซ่อน” เพื่อปิดรูปแบบผู้ใช้ใน Excel VBA