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

Xử lý hàng loạt các tệp Excel được bảo vệ bằng mật khẩu

Thu hẹp và mở rộng cột trong Excel

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