สารบัญ
โดยปกติแล้ว เราอาจต้องเปิดไฟล์จากไฟล์ Excel หลักโดยใช้ VBA ในไดเร็กทอรีอื่น แต่ในขณะเดียวกัน เรามีเกณฑ์หลายประเภทเกี่ยวกับวิธีที่เราต้องการเปิดสมุดงาน หากคุณอยากรู้ว่าคุณจะเปิดสมุดงานด้วยชื่อตัวแปรได้อย่างไร บทความนี้อาจมีประโยชน์สำหรับคุณ ในบทความนี้ เราจะพูดถึงวิธีเปิดสมุดงานที่มีชื่อตัวแปรโดยใช้ VBA ใน Excel พร้อมคำอธิบายอย่างละเอียด
ดาวน์โหลดสมุดงานแบบฝึกหัด
ดาวน์โหลดสมุดงานแบบฝึกหัดด้านล่าง
เปิดสมุดงานที่มีชื่อตัวแปรโดยใช้ VBA.xlsm
Sample.xlsx
4 ง่าย วิธีเปิดสมุดงานด้วยชื่อตัวแปรโดยใช้ VBA ใน Excel
เราจะใช้ชุดข้อมูลด้านล่างสำหรับการสาธิต เรามีข้อมูลผลิตภัณฑ์ของผลิตภัณฑ์หลายรายการพร้อมรหัสผลิตภัณฑ์ นี่เป็นไฟล์ตัวอย่างที่เราจะเปิดโดยใช้โค้ด VBA
1. การใช้ Workbook.Open Property
การใช้ Workbook คุณสมบัติ .Open เราสามารถเปิดไฟล์โดยระบุไดเร็กทอรีหรือไม่ระบุตำแหน่งก็ได้ เรายังทำให้ไฟล์ที่เปิดเป็นแบบอ่านอย่างเดียวได้ด้วย
1.1 Open Workbook Mentioning File Path
ในวิธีต่อไป เราจะใช้ Workbook.Open Property เพื่อเปิดไฟล์โดยตรงจากไดเร็กทอรีตำแหน่งไฟล์ที่กล่าวถึง ไม่ว่าไฟล์จะอยู่ที่ใดเราก็เปิดไฟล์ได้ซึ่งก็คือ Sub Open_File_with_Add_Property()
⮚ จากนั้นเราจะประกาศตัวแปร File_Path เป็น String type.
5391
⮚ และ ตั้งค่าตัวแปร File_Path เป็นตำแหน่งของไฟล์
7921
⮚ เราประกาศ wb เป็นตัวแปรใน สมุดงาน ประเภท
5955
⮚ จากนั้นสมุดงานจะถูกเพิ่มจากไดเร็กทอรีที่จัดเก็บไว้ในตำแหน่ง File_Path โดยใช้คุณสมบัติ Workbook.Add
2437
⮚ สุดท้าย เราสิ้นสุด ขั้นตอนย่อยของโค้ดนี้
อ่านเพิ่มเติม: [แก้ไขแล้ว!] วิธีการเปิดสมุดงานอ็อบเจกต์ล้มเหลว (วิธีแก้ไข 4 ข้อ)
สรุป
โดยสรุป ปัญหาของวิธีที่เราสามารถเปิดสมุดงานที่มีชื่อตัวแปรโดยใช้ VBA มีคำตอบอยู่ที่นี่ด้วย 4 ตัวอย่างที่แตกต่างกัน วิธีการ VBA Macro ต้องการความรู้ ที่เกี่ยวข้องกับ VBA ก่อนหน้าเพื่อทำความเข้าใจตั้งแต่เริ่มต้น
สำหรับปัญหานี้ สมุดงานที่เปิดใช้งานมาโครพร้อมให้ดาวน์โหลดซึ่งคุณสามารถฝึกฝนได้ วิธีการเหล่านี้
อย่าลังเลที่จะถามคำถามหรือข้อเสนอแนะผ่านส่วนความคิดเห็น ข้อเสนอแนะใด ๆ สำหรับการปรับปรุงของชุมชน Exceldemy จะได้รับการชื่นชมอย่างมาก
ได้อย่างง่ายดายขั้นตอน
- เรามีไฟล์เก็บไว้ในโฟลเดอร์เอกสารซึ่งเราต้องเปิด
- เราจะใช้ไฟล์ ชื่อเป็นตัวแปร จากนั้นเปิดไฟล์โดยใช้แมโคร VBA ขนาดเล็ก
- ไดเร็กทอรีไฟล์ที่แน่นอนของไฟล์แสดงอยู่ด้านล่างในหน้าต่างคุณสมบัติ
- ขั้นแรก ไปที่แท็บ นักพัฒนา แล้วคลิก Visual Basic หากคุณไม่มี คุณต้อง เปิดใช้งานแท็บนักพัฒนาซอฟต์แวร์ หรือคุณสามารถกด ' Alt+F11' เพื่อเปิด Visual Basic Editor
- จากนั้นจะมีกล่องโต้ตอบใหม่ ในกล่องโต้ตอบนั้น คลิกที่ แทรก > โมดูล .
- ถัดไป ในหน้าต่างตัวแก้ไข โมดูล ให้พิมพ์โค้ดต่อไปนี้:
6132
- จากนั้นปิด โมดูล หน้าต่าง
- หลังจากนั้น ไปที่แท็บ ดู > มาโคร .
- จากนั้นคลิกที่ ดู มาโคร .
- หลังจากคลิก ดูมาโคร เลือกมาโครที่คุณสร้างเมื่อกี้ ชื่อที่นี่คือ Open_with_File_Path จากนั้นคลิก เรียกใช้ .
- หลังจากนั้นไฟล์ ตัวอย่าง จะเปิดขึ้น
🔎 รายละเอียดของรหัส
1611
⮚ อันดับแรก เราระบุชื่อสำหรับรหัสย่อย ซึ่งก็คือ Open_with_File_Path .
1360
⮚ จากนั้น เราใส่ตำแหน่งของไฟล์ใน File_Path variable
8469
⮚จากนั้น เราประกาศตัวแปรของเรา wrkbk ซึ่งเป็นประเภทสมุดงาน
5970
⮚ จากนั้น เราเปิดไฟล์ที่มีชื่อในตัวแปรไดเร็กทอรี File_Path และตั้งค่าไฟล์ เป็น wrkbk ตัวแปร
2932
⮚ สุดท้าย เราจบขั้นตอนย่อยของโค้ดนี้
อ่านเพิ่มเติม: วิธีการ เปิดสมุดงานจากเส้นทางโดยใช้ Excel VBA (4 ตัวอย่าง)
1.2 เปิดสมุดงานโดยไม่กล่าวถึงเส้นทางของไฟล์
ในวิธีถัดไป เราจะเปิดไฟล์จากโฟลเดอร์หลัก โดยที่ บันทึกไฟล์หลักแล้ว สามารถเปิดไฟล์ได้โดยไม่ต้องระบุตำแหน่งใดๆ ในโค้ด ไฟล์นี้ต้องอยู่ในโฟลเดอร์เดียวกับโฟลเดอร์พาเรนต์
ขั้นตอน
- เรามีไฟล์อื่นที่บันทึกไว้ในไดเร็กทอรีเดียวกับที่พาเรนต์ บันทึกไฟล์ Excel แล้ว
- ชื่อไฟล์คือ 1
- ก่อนอื่น ให้ไปที่ นักพัฒนาซอฟต์แวร์ แท็บ และคลิกที่ Visual Basic หากคุณไม่มี คุณต้อง เปิดใช้งานแท็บนักพัฒนาซอฟต์แวร์ หรือคุณสามารถกด ' Alt+F11 ' เพื่อเปิด Visual Basic Editor
- จากนั้นจะมีกล่องโต้ตอบใหม่ ในกล่องโต้ตอบนั้น คลิกที่ แทรก > โมดูล .
- ถัดไป ในหน้าต่างแก้ไข โมดูล ให้พิมพ์โค้ดต่อไปนี้:
8973
- จากนั้นปิด โมดูล หน้าต่าง
- หลังจากนั้น ไปที่แท็บ ดู > มาโคร .
- จากนั้นคลิกที่ ดูมาโคร .
- หลังจากคลิกดูมาโคร ให้เลือกมาโครที่คุณสร้างเมื่อกี้ ชื่อที่นี่คือ Open_without_File_Path จากนั้นคลิก Run
- หลังจากกด Run คุณจะสังเกตเห็นว่าไฟล์ชื่อ 1 เปิดขึ้นแล้ว
- และนี่คือวิธีที่เราเปิดสมุดงานด้วยชื่อตัวแปรโดยใช้ VBA ใน Excel
🔎 รายละเอียดของ รหัส
5522
⮚ อันดับแรก เราระบุชื่อสำหรับขั้นตอนย่อยซึ่งเป็น Sub Open_without_File_Path()
9525
⮚ เราประกาศ wrkbk เป็นตัวแปรในประเภทสมุดงาน
4536
⮚ เราเปิดไฟล์จากไดเร็กทอรีหลักชื่อ 1.xlsx .
3959
⮚ สุดท้าย เราจบขั้นตอนย่อย ของรหัสนี้
1.3 เปิดสมุดงานเป็นแบบอ่านอย่างเดียว
วิธีการค่อนข้างคล้ายกับวิธีแรก แต่ในที่นี้ เราจะเปิดไฟล์ในโหมดอ่านอย่างเดียว หมายความว่าเราจะไม่ สามารถแก้ไขข้อมูลหรือค่าต่างๆ ในไฟล์ Excel ได้
ขั้นตอน
- ไฟล์ที่เราต้องการเปิดจะถูกบันทึกไว้ในโฟลเดอร์เอกสาร
- และนี่คือไฟล์ที่เราต้องการเปิดเป็นแบบอ่านอย่างเดียว
- ก่อนอื่น ให้ไปที่ ผู้พัฒนา และคลิกที่ Visual Basic . หากคุณไม่มี คุณต้อง เปิดใช้งานแท็บนักพัฒนาซอฟต์แวร์ หรือคุณสามารถกด ' Alt+F11 ' เพื่อเปิด Visual Basic Editor
- จากนั้นจะมีหน้าต่างใหม่ กล่องโต้ตอบ ในกล่องโต้ตอบนั้น คลิกที่ แทรก > โมดูล .
- ถัดไป ในหน้าต่างแก้ไข โมดูล พิมพ์ รหัสต่อไปนี้:
7090
- จากนั้นปิดหน้าต่าง โมดูล
- หลังจากนั้น ไปที่แท็บ ดู > มาโคร .
- จากนั้นคลิกที่ ดูมาโคร .
- หลังจากคลิกดู มาโคร ให้เลือกมาโครที่คุณสร้างเมื่อกี้นี้ ชื่อที่นี่คือ Open_with_File_Read_Only จากนั้นคลิก เรียกใช้ .
- หลังจากคลิก เรียกใช้ เราจะเห็นว่าไฟล์ถูกเปิดขึ้นแล้ว เป็นแบบอ่านอย่างเดียวตามที่แสดงในแถบชื่อเรื่อง
🔎 รายละเอียดของรหัส
4654
⮚ ขั้นแรก เราระบุชื่อสำหรับขั้นตอนย่อยซึ่งเป็น Open_with_File_Read_Only()
1753
⮚ เราประกาศ wrkbk เป็นตัวแปรในประเภทสมุดงาน
5399
⮚ จากนั้นไฟล์จะเปิดจากไดเร็กทอรีที่กำหนด และไฟล์จะถูกตั้งค่าเป็น อ่านอย่างเดียว โดยอาร์กิวเมนต์สุดท้าย
5316
⮚ สุดท้าย เราจบการ ขั้นตอนย่อยของรหัสนี้
อ่านเพิ่มเติม: วิธีเปิดสมุดงานเป็นแบบอ่านอย่างเดียวด้วย Excel VBA
2. การใช้กล่องข้อความ
เกือบจะคล้ายกับวิธีการก่อนหน้านี้ เราสามารถเปิดไฟล์ผ่านโค้ด VBA ที่นี่ใน Excel แต่ในกรณีนี้ เราจะรวมกล่องข้อความขนาดเล็กไว้ที่นี่
ขั้นตอน
- ขั้นแรก ไปที่แท็บ นักพัฒนา แล้วคลิก Visual Basic หากคุณไม่มี คุณต้อง เปิดใช้งานแท็บนักพัฒนา หรือคุณสามารถกด ' Alt+F11' เพื่อเปิด Visual Basic Editor
- จากนั้นจะมีกล่องโต้ตอบใหม่ ในกล่องโต้ตอบนั้น คลิกที่ แทรก > โมดูล .
- ถัดไป ในหน้าต่างตัวแก้ไข โมดูล ให้พิมพ์โค้ดต่อไปนี้:
2836
- จากนั้นปิด โมดูล หน้าต่าง
- หลังจากนั้น ไปที่แท็บ ดู > มาโคร .
- จากนั้นคลิกที่ ดู มาโคร .
- หลังจากคลิก ดูมาโคร เลือกมาโครที่คุณสร้างเมื่อกี้ ชื่อที่นี่คือ Open_File_with_Messege_Box จากนั้นคลิก เรียกใช้ .
- จากนั้นเราจะได้กล่องคำเตือน ซึ่งแสดงว่า เปิดไฟล์สำเร็จแล้ว .
- จากนั้นคลิก ตกลง .
- จากนั้นเราจะเห็นว่าตอนนี้ไฟล์ เปิด
- จากนั้นเราลองแก้ไขโค้ดเล็กน้อย
- เราเปลี่ยนชื่อไฟล์เป็น ตัวอย่าง10 และไม่มีไฟล์ชื่อ Sample10 ในโฟลเดอร์เอกสาร
- จากนั้นเรา เรียกใช้ โค้ดอีกครั้ง และมีกล่องข้อความแจ้งว่า การเปิดไฟล์ล้มเหลว .
- คลิก ตกลง หลังจากนี้
🔎 รายละเอียดของรหัส
2431
⮚ ขั้นแรก เราระบุชื่อสำหรับขั้นตอนย่อยซึ่งได้แก่ Open_with_File_Read_Only()
2003
⮚ เราประกาศ wrkbk เป็นตัวแปรใน Workbook type
8275
5578
⮚ บรรทัดนี้จะตรวจสอบว่ามีไฟล์ชื่อ Example อยู่ในไดเร็กทอรีหรือไม่ ถ้ามีไฟล์ก็จะ เปิดไฟล์และในเวลาเดียวกันจะแสดงข้อความ
7813
⮚ หากไม่มีไฟล์ชื่อ Sample ในไดเร็กทอรี ข้อความนี้จะถูกส่ง
7922
⮚ สุดท้าย เราจบขั้นตอนย่อยของโค้ดนี้
4373
⮚ สุดท้าย เราจบขั้นตอนย่อยของโค้ดนี้
อ่านเพิ่มเติม: วิธีเปิดสมุดงานและเรียกใช้มาโครโดยใช้ VBA (4 ตัวอย่าง)
3. การใช้กล่องโต้ตอบเพื่อเปิดไฟล์
การแยกไดเร็กทอรีตำแหน่งไฟล์และนำเข้าแต่ละครั้ง ในรหัส VBA ค่อนข้างยุ่งยาก เพื่อแก้ไขปัญหา เราจะแสดงวิธีที่คุณสามารถใช้กล่องโต้ตอบเพื่อเลือกไฟล์จากไดเร็กทอรีใดก็ได้
ขั้นตอน
- ตอนนี้เราจะเปิดไฟล์ โดยใช้กล่องโต้ตอบตัวสำรวจไฟล์
- ขั้นแรก ไปที่แท็บ นักพัฒนาซอฟต์แวร์ แล้วคลิก Visual Basic หากคุณไม่มี คุณต้อง เปิดใช้งานแท็บนักพัฒนาซอฟต์แวร์ หรือคุณสามารถกด ' Alt+F11' เพื่อเปิด Visual Basic Editor
- จากนั้นจะมีกล่องโต้ตอบใหม่ ในกล่องโต้ตอบนั้น คลิกที่ แทรก > โมดูล .
- ถัดไป ในหน้าต่างแก้ไข โมดูล ให้พิมพ์โค้ดต่อไปนี้:
8891
- จากนั้นปิด โมดูล หน้าต่าง
- หลังจากนั้น ไปที่แท็บ ดู > มาโคร .
- จากนั้นคลิกที่ ดูมาโคร .
- หลังจากคลิก ดูมาโคร เลือกมาโครที่คุณสร้างเมื่อกี้นี้ ชื่อที่นี่คือ Open_File_with_Dialog_Box จากนั้นคลิก เรียกใช้ .
- จากนั้นหน้าต่างใหม่จะเปิดขึ้น ในกล่องโต้ตอบ file explorer และเลือก ตัวอย่าง แล้วคลิก ตกลง .
- จากนั้นไฟล์ชื่อ ตัวอย่าง เปิดแล้ว
- และนี่คือวิธีที่เราเปิดสมุดงานด้วยชื่อตัวแปรโดยใช้ VBA ใน Excel
🔎 รายละเอียดรหัส
5864
⮚ อันดับแรก เราระบุชื่อสำหรับขั้นตอนย่อยซึ่งก็คือ Sub Open_File_with_Dialog_Box()
2920
⮚ เราประกาศ Dbox เป็นตัวแปรใน FileDialog type
5978
⮚ เราประกาศ File_Path เป็นตัวแปรใน File_Path As String type
6850
⮚ จะมีกล่องโต้ตอบจากบรรทัดแรก บรรทัดถัดไปแสดงชื่อกล่องโต้ตอบและประเภทไฟล์
⮚ Dbox.Title จะตั้งชื่อเรื่องของกล่องโต้ตอบ และ FileType
ตั้งค่าประเภทไฟล์
1811
⮚ Dbox.Filters.Clear จะล้างตัวกรองก่อนหน้านี้ที่ใช้ในกล่องโต้ตอบ
9286
⮚ Dbox.Show จะทำให้กล่องโต้ตอบปรากฏบนไฟล์
⮚ บรรทัดนี้จะกำหนดว่าผู้ใช้เลือกมากกว่าหนึ่งไฟล์หรือไม่ หากผู้ใช้เลือกมากกว่าไฟล์เดียว ขั้นตอนทั้งหมดจะหยุดลง
6915
⮚ สุดท้ายนี้ เราจบขั้นตอนย่อยของโค้ดนี้
อ่านเพิ่มเติม: วิธีเปิด โฟลเดอร์และเลือกไฟล์โดยใช้ Excel VBA (4 ตัวอย่าง)
4. การใช้ Workbook.Add Property
ตรงกันข้ามกับวิธีการก่อนหน้านี้ เราจะสร้างไฟล์ Excel ใหม่ในไดเร็กทอรีที่กำหนดไว้ล่วงหน้า จากนั้นเราจะเปิดโดยใช้ สมุดงาน เพิ่ม คุณสมบัติ
ขั้นตอน
- ขั้นแรก ไปที่แท็บ นักพัฒนาซอฟต์แวร์ แล้วคลิก Visual Basic . หากคุณไม่มี คุณต้อง เปิดใช้งานแท็บนักพัฒนาซอฟต์แวร์ หรือคุณสามารถกด ' Alt+F11' เพื่อเปิด Visual Basic Editor
- จากนั้นจะมีกล่องโต้ตอบใหม่ ในกล่องโต้ตอบนั้น คลิกที่ แทรก > โมดูล .
ถัดไป ในหน้าต่างแก้ไข โมดูล พิมพ์รหัสต่อไปนี้:
4988
- จากนั้นปิดหน้าต่าง โมดูล
- หลังจาก ไปที่แท็บ ดู > มาโคร .
- จากนั้นคลิกที่ ดูมาโคร .
- หลังจากคลิก ดูมาโคร เลือกมาโครที่คุณสร้างเมื่อกี้ ชื่อที่นี่คือ Open_File_with_Add_Property จากนั้นคลิก เรียกใช้ .
- หลังจากคลิก เรียกใช้ คุณจะสังเกตเห็นว่าขณะนี้มีไฟล์ใหม่ สร้างและเปิด
🔎 รายละเอียดของรหัส
⮚ อันดับแรก เราจัดเตรียม ชื่อสำหรับขั้นตอนย่อย