มาโคร Excel, add-in ทำงานกับหนังสือต่าง ๆ


0

ฉันมีปัญหากับมาโคร รหัสทำงานเมื่อฉันใช้ในแมโครใหม่ (ฉันสร้างแมโครใหม่ใน Book1 และวางรหัสที่นั่น) และเปิดใช้งานแมโครจาก Book1 นี้

สิ่งต่าง ๆ เริ่มยากขึ้นเมื่อฉันแก้ไขโดยใช้ Add-in (กลุ่มใหม่ใน Ribbon ชื่อ "MyOwnGroup" มีปุ่มเดียว "MyOwnButton") และฉันต้องการคำแนะนำจากคุณที่นี่จริงๆ

ดังนั้นสิ่งที่ฉันพยายามทำและเกิดอะไรขึ้น

1) มันทำงานอย่างไรโดยไม่มีการเพิ่มเข้า ฉันเลือกช่วงใน Book2 กด ALT + F8 และเพียงเปิดใช้งานมาโครของ Book1 ช่วงที่เลือกจะถูกคัดลอกไปยัง Book1 ภายในมาโคร Book1 คือ ThisWorkBook และ Book2 เป็น ActiveWorkBook ฉันหมายถึงมาโครที่มีการอ้างอิงที่แตกต่างกัน 2: ThisWorkBook (ที่รหัสคือ) และ ActiveWorkbook เมื่อฉันคัดลอกช่วง

2) ด้วยการเพิ่มในสิ่งต่าง ๆ เพราะตอนนี้ฉันมีหนังสือ 3 เล่ม:

  • Book1 (ฉันต้องวางช่วงที่เลือกจากหนังสือเล่มอื่นไปยังหนังสือนี้)

  • Book2 ที่มีช่วงที่เลือก

  • Workbook.xlam ซึ่งมีรหัสของแมโครของฉัน

ThisWorkBook ตอนนี้เป็น Workbook.xlam เพราะมีรหัส

ActiveWorkbook เป็นหนังสือที่มีช่วงที่เลือก

Book1 ที่ฉันพยายามวางค่าเป็น uknown สำหรับมาโครฉันไม่สามารถอ้างอิงได้ ...

สำหรับเช่น

ฉันเปิด Book1 ของฉัน (และ Workbook.xlam พร้อมด้วยมาโครเปิดขึ้นเช่นกัน) จากนั้นฉันเปิด Book2 ฉันเลือกช่วงใน Book2 เปิดใช้งาน Book1 แล้วกด "MyOwnButton" การเลือกจาก Book2 (จาก activebook) จะต้องคัดลอกและวางลงใน Book1 (โดยไม่ต้องเพิ่มมันคือ ThisWorkBook) แต่ฉันไม่สามารถรับการอ้างอิงถึง Book1 ได้เนื่องจาก ThisWorkBook คือ Workbook.xlam และ ActiveWorkBook คือ Book2 พวกเขามีส่วนร่วมแล้ว

มีวิธีที่จะได้รับการอ้างอิงของ Book1 ในกรณีนี้หรือไม่?


1
แน่นอนคุณสามารถบอกให้แมโครใช้สมุดงาน 'ที่ใช้งานอยู่ในปัจจุบัน' (ซึ่งไม่ใช่ ThisWorkBook อย่างอื่น)
Aganju

"มีวิธีการอ้างอิง Book1 ในกรณีนี้หรือไม่?" - หากคุณเปิด book11 และ book1111 ด้วยวิธีที่คุณต้องการให้ Excel รู้ว่าคุณต้องใช้ Book1 หรือไม่ ถ้าคุณแน่ใจว่าคุณได้เปิดเพียงสองสมุดงานแล้วคุณสามารถห่วงผ่านและใช้อย่างใดอย่างหนึ่งซึ่งไม่ได้เป็นเช่นเดียวกับApplication.Workbooks ActiveWorkbook
MátéJuhász

เป็นความคิดที่ดีที่จะใช้การวนซ้ำ! แต่ลูปจะตรวจจับ book.xlam หรือไม่
Andre
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.