ใช้การจับคู่เพื่อรับข้อมูลจากแผ่นงานปิด

ฉันกำลังพยายามดึงข้อมูลจากแผ่นงานปิดจำนวนมากและนำมาไว้ในแผ่นงานปัจจุบันของฉัน ปัญหาของเราคือเซลล์ที่พบข้อมูลในแผ่นงานที่แตกต่างกันไม่สอดคล้องกัน ตัวอย่างเช่น สมมติว่าฉันต้องการได้รับผลกำไรจากไฟล์ที่แตกต่างกัน 3 ไฟล์ (ไฟล์ 1, 2 และ 3) ในไฟล์ 1 อาจอยู่ในแถวที่ 1 ไฟล์ 2 ในแถวที่ 2 และไฟล์ 3 ในแถวที่ 3

ฉันได้ลองใช้สูตร worksheet.match และ with cells .formulae แล้ว แต่ดูเหมือนว่าทั้งสองวิธีจะใช้ไม่ได้ ฉันต้องลองและไม่เปิดแผ่นงานอื่นๆ ทั้งหมดเนื่องจากมี 400 แผ่น ได้โปรดมีคนช่วยด้วย


person Paul    schedule 03.02.2012    source แหล่งที่มา
comment
จอบคุณหาข้อมูลเช่นคุณกำลังค้นหาอะไร? และในแต่ละครั้งจะมีกระดาษปิด(หนังสือ?) ทั้งหมด 400 แผ่น กำลังกำหนดมาตรฐานสมุดงานปิด (อย่างถูกต้องหรือโดยการแทรกแถวโดยใช้ VBA เพื่อทำให้แถวหลักของคุณอยู่ในตำแหน่งเดียวกันหรือไม่)   -  person brettdj    schedule 03.02.2012
comment
ฉันมีสมุดงาน 10 เล่ม แต่ละเล่มมีขนาดประมาณ 2.4 Mb แผ่นงานแรกในแต่ละแผ่นจะคล้ายกันแต่ไม่เหมือนกัน บนแล็ปท็อป 2.1GHz ของฉัน การวนซ้ำ 40 ครั้งที่เปิดและปิดไฟล์ 10 ไฟล์เหล่านี้ใช้เวลา 188 วินาที การค้นหาข้อความที่สามารถเคลื่อนย้ายได้ก่อนปิดสมุดงานแต่ละเล่มจะใช้เวลาสูงสุดถึง 190 วินาที คุณต้องถ่ายโอนข้อมูลซึ่งจะใช้เวลาพอสมควร แต่ถ้าเป็นงานประจำวัน ฉันไม่เห็นว่าสี่นาทีนั้นมากเกินไป คุณไม่ได้บอกเราเกี่ยวกับลักษณะของข้อมูลที่คุณกำลังมองหาและสิ่งที่คุณต้องการทำให้สำเร็จ คุณคาดหวังให้เราสามารถช่วยได้อย่างไร?   -  person Tony Dallimore    schedule 03.02.2012


คำตอบ (1)


คุณสามารถใช้ ADO เพื่อสืบค้นสมุดงานที่ถูกปิดและนำเข้าข้อมูลลงในสมุดงานปัจจุบัน แทนที่จะพยายามจัดการกับสูตรที่ยุ่งวุ่นวายมากมาย คุณสามารถปรับแต่งการสืบค้น SQL สำหรับสมุดงานแต่ละเล่มเพื่อจัดเก็บสตริง SQL ทั้งหมดของคุณในอาร์เรย์ เพื่อให้คุณสามารถทำการวนซ้ำแบบซ้อนและสืบค้นในสมุดงานได้ หากดูเหมือนสิ่งที่คุณต้องการพิจารณาแต่ต้องการความช่วยเหลือเกี่ยวกับโค้ด ฉันยินดีที่จะเขียนตัวอย่าง

person Kittoes0124    schedule 06.02.2012