Excel VBA: tên tệp sổ làm việc dưới dạng biến

Excel VBA: tên tệp sổ làm việc dưới dạng biến

Xin chào

Tôi đang cố gắng cải thiện một số mã VBA có khả năng sao chép dữ liệu thành công từ bốn sổ làm việc riêng biệt và dán vào bốn trang tính riêng biệt trên một sổ làm việc đích.

Điều tôi muốn làm là truyền tên tệp của sổ làm việc vào một biến để tôi có thể sử dụng câu lệnh CASE để thực hiện thao tác sao chép/dán cần thiết theo cách trực tiếp hơn.

Đoạn mã sau hoạt động theo dạng dài nhưng khi tôi thử truyền tên tệp vào biến wbfrom (và wbto) thì Excel không hoạt động:

wbfrom.Sheets("ABC").Range("A9:R213").Copy _

wbto.Sheets("XYZ").Range("A9")

Tôi đã thử với và không có tên đường dẫn nhưng đều vô ích. Tôi nghĩ tôi đã thử mọi cách hoán vị của

Làm mờ wbfrom dưới dạng Workbook

Dim wbstring thành String

… ngoại trừ cái còn hoạt động.

Bất kỳ sự hướng dẫn nào cũng sẽ được đánh giá cao.

Dave




Trả lời:

Nếu sổ làm việc của bạn đã đóng, thì bạn có thể sử dụng kiểu cấu trúc sau -

Đặt wbfrom = Workbooks.Open("C:\Test\abc.xlsx")

Nếu nó đã mở rồi thì

Đặt wbfrom = Workbooks("abc.xlsx")

Comments

Popular posts from this blog

Điều tôi muốn làm trong Excel 2010 là tạo một nút tùy chỉnh và gắn nó vào thanh công cụ Truy nhập nhanh và chạy một macro cụ thể.

Excel 2016 - mở tất cả các tệp trong MỘT phiên bản

Mở tài liệu Excel và Word từ Outlook Lỗi - Không đủ bộ nhớ