Gary thường xuyên nhận được tệp XLS do ai đó bên ngoài công ty của anh ấy tạo ra. Sau đó, anh ta cần nhập một số macro vào sổ làm việc (hoặc, phiền !, sao chép chúng từ tệp TXT) và sau đó lưu sổ làm việc ở định dạng XLSM. Gary tự hỏi liệu có cách nào để tự động hóa việc này hay không, để anh ta có thể chạy một macro sẽ nhập các macro mà anh ta thường thêm theo cách thủ công và sau đó lưu sổ làm việc ở định dạng thích hợp.

Có một cách để tự động hóa nó bằng cách sử dụng đối tượng VBProject. Nếu tệp văn bản bên ngoài của bạn về cơ bản chứa các mô-đun Visual Basic, bạn có thể sử dụng phương pháp Nhập để thực sự nhập các mô-đun đó. Nó hoạt động giống hệt như khi bạn sử dụng khả năng Nhập của Visual Basic Editor. Đây là ví dụ về một số mã bạn có thể sử dụng:

Sub AutomateImport()

Const ModulePath As String = "C:\temp\code.txt"



Dim thisTarget As Workbook     Dim thisName As String

Set thisTarget = ActiveWorkbook     thisName = thisTarget.Name

' Save as XLSM file (neceassry before importing module)

ActiveWorkbook.SaveAs thisName & ".xlsm", _       FileFormat:=xlOpenXMLWorkbookMacroEnabled

' Import the VBA code required     thisTarget.VBProject.VBComponents.Import ModulePath

' Save the workbook     ActiveWorkbook.Save End Sub

Lưu ý rằng mã lưu sổ làm việc đang hoạt động dưới dạng tệp XLSM trước khi thực sự thực hiện nhập. Điều này là cần thiết vì chức năng Nhập có thể bị thiếu nếu bạn cố gắng nhập mô-đun VBA vào sổ làm việc không hỗ trợ macro. Ngoài ra, nếu bạn gặp lỗi khi chạy macro, bạn có thể muốn kiểm tra trong Visual Basic Editor mà bạn đã thiết lập tham chiếu đến thư viện đối tượng khả năng mở rộng VBA.

Để sử dụng macro, hãy đảm bảo bạn cập nhật hằng số ModulePath để nó trỏ đúng đến tệp văn bản mong muốn. Macro cũng phải được lưu trữ trong sổ làm việc Cá nhân của bạn để nó sẽ sẵn dùng bất cứ khi nào bạn sử dụng Excel.

Bạn cũng có thể thu được lợi nhuận bằng cách kiểm tra một số mã trên trang web của Ron DeBruin, nơi chỉ ra cách nhập và xuất mã VBA trong một macro:

https://www.rondebruin.nl/win/s9/win002.htm

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (11855) áp dụng cho Microsoft Excel 2007, 2010, 2013 và 2016.