300 ตัวอย่าง

แบบฟอร์มผู้ใช้ที่มีหลายหน้า

Userform With Multiple Pages

ด้านล่างเราจะดูโปรแกรมใน Excel VBA ซึ่งสร้าง Userform ที่มีหลายหน้า แบบฟอร์มผู้ใช้นี้ยังมีรูปภาพ





การควบคุมหลายหน้าประกอบด้วยสองหน้า ที่หน้า 1 ผู้ใช้สามารถกรอกข้อมูลส่วนตัวได้ ที่หน้า 2 ผู้ใช้สามารถระบุว่าชอบภาพวาดใดมากที่สุด

แบบฟอร์มผู้ใช้ หน้า 1 แบบฟอร์มผู้ใช้ หน้า 2





ในการสร้าง Userform นี้ ให้ทำตามขั้นตอนต่อไปนี้

1. เปิด โปรแกรมแก้ไข Visual Basic . หากมองไม่เห็น Project Explorer ให้คลิก View, Project Explorer



2. คลิก แทรก แบบฟอร์มผู้ใช้ หาก Toolbox ไม่ปรากฏขึ้นโดยอัตโนมัติ ให้คลิก View, Toolbox หน้าจอของคุณควรได้รับการตั้งค่าดังนี้

การตั้งค่าหน้าจอแบบฟอร์มผู้ใช้ใน Excel VBA

3. เพิ่มตัวควบคุมหลายหน้า, ป้ายกำกับ, กล่องข้อความ (อันดับแรกที่ด้านบน, อันที่สองด้านล่างอันแรก), เฟรม, ปุ่มตัวเลือก (ตัวแรกทางด้านซ้าย, อันที่สองทางด้านขวา), กล่องรายการ, การควบคุมรูปภาพ และปุ่มคำสั่ง เมื่อดำเนินการเสร็จสิ้น ผลลัพธ์ควรสอดคล้องกับเวอร์ชันว่างของ Userform ที่แสดงไว้ก่อนหน้านี้ ตัวอย่างเช่น สร้างตัวควบคุมหลายหน้าโดยคลิกที่หลายหน้าจากกล่องเครื่องมือ ถัดไป คุณสามารถลากตัวควบคุมหลายหน้าบน Userform เมื่อคุณมาถึงกรอบเพศ อย่าลืมวาดกรอบนี้ก่อนที่จะวางปุ่มตัวเลือกสองปุ่มลงไป

4. คุณสามารถเปลี่ยนชื่อและคำอธิบายของตัวควบคุมได้ ชื่อที่ใช้ในโค้ด Excel VBA คำอธิบายภาพคือสิ่งที่ปรากฏบนหน้าจอของคุณ เป็นการดีที่จะเปลี่ยนชื่อของตัวควบคุม แต่ไม่จำเป็นที่นี่ เนื่องจากเรามีตัวควบคุมเพียงไม่กี่ตัวในตัวอย่างนี้ เมื่อต้องการเปลี่ยนคำอธิบายของ Userform, แท็บหลายหน้า, ป้ายชื่อ, เฟรม, ปุ่มตัวเลือก และปุ่มคำสั่ง ให้คลิก View, Properties Window และคลิกที่แต่ละตัวควบคุม

เลือกหลายเซลล์ใน excel mac

5. หากต้องการแสดง Userform ให้วาง a ปุ่มคำสั่ง บนเวิร์กชีตของคุณและเพิ่มบรรทัดโค้ดต่อไปนี้:

ส่วนตัว ซับCommandButton1_Click()

UserForm1.Show

จบ ซับ

ตอนนี้เรากำลังจะสร้าง Sub UserForm_Initialize เมื่อคุณใช้วิธีการแสดงสำหรับ Userform ย่อยนี้จะถูกดำเนินการโดยอัตโนมัติ

6. เปิด โปรแกรมแก้ไข Visual Basic .

7. ใน Project Explorer ให้คลิกขวาที่ UserForm1 แล้วคลิก View Code

8. เลือก Userform จากรายการดรอปดาวน์ด้านซ้าย เลือกเริ่มต้นจากรายการดรอปดาวน์ด้านขวา

9. เพิ่มบรรทัดรหัสต่อไปนี้:

ส่วนตัว ซับUserForm_Initialize()

กับListBox1
.AddItem 'ภูเขา'
.AddItem 'พระอาทิตย์ตก'
.AddItem 'ชายหาด'
.AddItem 'ฤดูหนาว'
จบ กับ

จบ ซับ

คำอธิบาย: กล่องรายการในหน้า 2 จะถูกเติม

ตอนนี้เราได้สร้างส่วนแรกของ Userform แล้ว แม้ว่าจะดูเรียบร้อยอยู่แล้ว แต่จะไม่มีอะไรเกิดขึ้นเมื่อเราเลือกรายการจากกล่องรายการหรือเมื่อเราคลิกปุ่มตกลง

10. ดาวน์โหลดรูปภาพ (ด้านขวาของหน้านี้) และเพิ่มลงใน 'C: est'

11. ใน Project Explorer ให้ดับเบิลคลิกที่ UserForm1

12. ดับเบิลคลิกที่กล่องรายการ

13. เพิ่มบรรทัดรหัสต่อไปนี้:

ส่วนตัว ซับListBox1_Click()

ถ้าListBox1.ListIndex = 0แล้ว
Image1.Picture = LoadPicture('C: estMountains.jpg')
จบ ถ้า

ถ้าListBox1.ListIndex = 1แล้ว
Image1.Picture = LoadPicture('C: estSunset.jpg')
จบ ถ้า

ถ้าListBox1.ListIndex = 2แล้ว
Image1.Picture = LoadPicture('C: estBeach.jpg')
จบ ถ้า

ถ้าListBox1.ListIndex = 3แล้ว
Image1.Picture = LoadPicture('C: estWinter.jpg')
จบ ถ้า

จบ ซับ

คำอธิบาย: บรรทัดรหัสเหล่านี้โหลดรูปภาพขึ้นอยู่กับรายการที่เลือกในกล่องรายการ

14. ดับเบิลคลิกที่ปุ่ม OK

15. เพิ่มบรรทัดรหัสต่อไปนี้:

ส่วนตัว ซับCommandButton1_Click()

ไม่มีว่างแถวเนื่องจาก ยาว

'ทำให้ Sheet1 ใช้งานได้
แผ่นที่1.เปิดใช้งาน

'กำหนดช่องว่าง
emptyRow = WorksheetFunction.CountA(Range('A:A')) + 1

'โอนข้อมูล
เซลล์ (emptyRow, 1).Value = TextBox1.Value
เซลล์ (emptyRow, 2).Value = TextBox2.Value

ถ้าOptionButton1.Value =จริง แล้ว
เซลล์ (emptyRow, 3).Value = 'Male'
อื่น
เซลล์ (emptyRow, 3).Value = 'Female'
จบ ถ้า

เซลล์ (emptyRow, 4).Value = ListBox1.Value

'ปิดแบบฟอร์มผู้ใช้
ยกเลิกการโหลดฉัน

จบ ซับ

คำอธิบาย: ก่อนอื่น เราเปิดใช้งาน Sheet1 ต่อไปเราจะกำหนด emptyRow ตัวแปร emptyRow คือแถวแรกว่างและจะเพิ่มขึ้นทุกครั้งที่มีการเพิ่มระเบียน ต่อไป เราจะถ่ายโอนข้อมูลจาก Userform ไปยังคอลัมน์เฉพาะของ emptyRow สุดท้าย เราปิด Userform

16. ออกจาก Visual Basic Editor ป้อนป้ายกำกับที่แสดงด้านล่างในแถวที่ 1 และทดสอบ Userform

ผลลัพธ์:

ทดสอบ Userform

10/11 เสร็จแล้ว! เรียนรู้เพิ่มเติมเกี่ยวกับฟอร์มผู้ใช้ >
ไปที่บทถัดไป: พิสัย



^