Một giải pháp khác là phải có roll-up truy cập bảng tính của bạn các bảng tính khác bằng tên tập tin và lấy các dữ liệu riêng của mình.
Để làm điều đó, bạn cần phải mở tất cả các bảng tính cùng một lúc để có thể cập nhật liên kết nhưng vẫn có thể nhanh hơn mở và sao chép/dán từng liên kết, ngay cả với macro . Mỗi bảng tính sẽ cần phải có một tên tệp duy nhất.
Nếu tên của bảng tính không được biết cho đến khi bạn nhận hoặc chúng thay đổi thường xuyên, hãy tạo cột trong bảng cuộn lên để lưu tên tệp của trang tính, sau đó xây dựng địa chỉ bạn cần bằng thao tác chuỗi và lấy dữ liệu bằng cách sử dụng hàm INDIRECT().
Ví dụ để lấy một tế bào của dữ liệu từ một tập tin cụ thể:
=INDIRECT("'[C:\path\workbook.xls]MyWorksheet'!$A$2")
Rửa và lặp lại trên cho từng tế bào của mỗi bảng tính bạn muốn nhận được.
Bạn nên thông minh về cách để chuỗi được chuyển đến INDIRECT(). Xây dựng nó dưới dạng công thức để bạn có thể sử dụng công thức giống hệt nhau cho mọi ô bạn cần truy xuất.
Ví dụ:
= INDIRECT("'[" & $A2 & "]MyWorksheet'!$" & ADDRESS(3, COL()))
Công thức trên sẽ đi vào bảng tính có tên tệp là trong $ A2 (lưu ý sự thiếu $ trước khi "2", do đó bạn có thể dán cùng một công thức để hàng khác cho các tập tin khác) và nhận giá trị của ô trên bảng MyWorksheet trên hàng ba và cột hiện tại (vì vậy, nếu đây là B2 trên cuộn lên của bạn, nó sẽ nhận được B3 từ tệp khác).
Điều chỉnh chức năng ADDRESS để thêm bù đắp cho hàng và cột cần thiết.
Lợi thế của giải pháp ở trên là công thức giống nhau có thể được sao chép và dán trên các hàng và cột bạn cần điền và Excel sẽ điều chỉnh $ A2 và COL() nếu cần. Rất bảo trì.
Chỉnh sửa khi tôi có tình huống tương tự và tôi không thể tải tất cả các bảng tính cùng một lúc (hơn 200). Tôi nghĩ rằng tôi đã kết thúc bằng văn bản VBA vì vậy nó đã làm không thực sự mở và đọc các tập tin Excel. Thay vào đó, tôi đã lặp lại thông qua tên tệp, mở một kết nối ODBC cho mỗi tên và sử dụng ADO để đọc các giá trị tôi cần từ một phạm vi được chỉ định (được hiển thị dưới dạng "bảng" trong ODBC - các bảng tính cũng xuất hiện dưới dạng "bảng "nhưng có quy tắc về tên được phép). Điều này nhanh hơn nhiều so với việc mở và đóng các tệp Excel, và có thêm lợi thế là không bị lỗi Excel.
Qusetions: 1) Bạn có những gì cho đến nay? 2) làm thế nào để biết những tập tin để mở?và 3) Vấn đề bạn đang gặp phải là gì? – RBarryYoung