ฉันได้สร้าง Word 2010 VBA Macro Sub ด้วย UserForm Sub ค้นหา ==Codes== ในเอกสารแบบฟอร์ม วาง ==code== ที่พบเป็นป้ายกำกับลงใน Userform จากนั้นอนุญาตให้ผู้ใช้แทนที่ ==code== ด้วยอินพุตของเขาหรือเธอใน Combobox ( เป็นส่วนหนึ่งของ UserForm เดียวกัน)
จากนั้นแต่ละสตริงของข้อมูลที่ป้อนจะถูกบันทึกลงในรายการ Combobox ใน UserForm เพื่อเลือกในภายหลังหากจำเป็น
วิธีนี้ใช้ได้ผลดีจนกว่ามาโคร/ฟอร์มผู้ใช้นี้จะหมดอายุเนื่องจากเอกสารที่ค้นหาเสร็จสมบูรณ์ (หรือถูกยกเลิก)
ฉันต้องการเปิดเอกสารแบบฟอร์มถัดไป และในการเปิดตัว Macro/Sub เดียวกันนี้ จะคงรายการข้อมูลคอมโบบ็อกซ์เดิมไว้ (เป็นตัวเลือกในการกรอกเอกสารที่เปิดถัดไปนี้ - ตัวอย่างเช่น รหัส ==ชื่อลูกค้า== จะปรากฏขึ้นบ่อยครั้ง และฉันควรจะเลือกรายการคอมโบบ็อกซ์ แทนที่จะต้องพิมพ์ชื่อลูกค้าซ้ำแล้วซ้ำเล่า)
แต่ดูเหมือนว่าฉันไม่สามารถเก็บรายการ Combobox ไว้ในการเปิดตัว Macro Sub ใหม่ที่มีข้อมูล Combobox ก่อนหน้านี้ได้ แม้ว่าฉันจะแยกรูทีนนี้เป็นโมดูลแยกต่างหากและกำหนดตัวแปรล่วงหน้าด้วยมิติข้อมูล "สาธารณะ"
ดังนั้นก่อนที่ฉันจะพยายามทำความเข้าใจเรื่องนี้ ... ก็แค่คำถามง่ายๆ:
เมื่อมาโครสิ้นสุดลงตัวแปรสาธารณะทั้งหมดจะ "หลุด" หรือไม่ เมื่อผมเคยเขียนโปรแกรมในมาโคร DOS WP.51 คุณสามารถเก็บสตริงข้อมูลไว้ใน RAM ได้อย่างไม่มีที่สิ้นสุด (จนกว่าคุณจะ "ฆ่า" มันหรือปิด WP)
หากตัวแปรสาธารณะไม่ได้ "ถูกทิ้ง" ใครก็ได้ให้ตัวอย่างโค้ดที่ตัวแปรสาธารณะสามารถเก็บไว้และเติมลงในฟอร์มผู้ใช้คอมโบบ็อกซ์ที่เปิดใช้งานซ้ำกันได้ไหม
ความคิดใดๆ ก็ตามสั้นๆ ก็สามารถช่วยได้
ขอบคุณมากล่วงหน้า . .
ไมค์
UserForm
Macro นี้เก็บไว้ในเทมเพลตNormal
หรือไม่ แล้วเมื่อคุณเปิดเอกสารแบบฟอร์มถัดไป คุณจะปิด Word แล้วเปิดใหม่อีกครั้ง? - person Jean-Pierre Oosthuizen   schedule 19.01.2016