2009-10-08 3 views
5

Có thể cho VBScript viết Macro trong tệp excel khi nó được tạo ra có thể chạy bất cứ khi nào tệp được mở không?VBScript để Viết Macro trong một tệp Excel

Ive có một VBScript để tự động tạo ra một file excel và một số dữ liệu bên trong nó, này chạy một lần và tạo ra các tập tin với tất cả các dữ liệu/các loại, vv

Những gì tôi cần là phải có một số tương tác mà bình thường được chạy với một macro trong khi chương trình đang chạy và ai đó xem dữ liệu, vấn đề ở đây vì nó là một tệp được tạo tự động, không có macro nào được lưu.

Nếu như vậy làm thế nào điều này sẽ được thực hiện, làm thế nào có thể một vĩ mô để được chạy sau này được viết trong vbscript?

+0

bạn có thể tạo ra các tập tin từ một mẫu XLST có chứa một bản sao của vĩ mô? – Mikeb

Trả lời

5

Lời khuyên tuyệt vời divo, vâng tôi có thể tạo nó từ một mẫu nhưng nó là một trường hợp mà tôi sẽ cần thêm flexability và tích hợp với các biến trong kịch bản.

Các excel VBProject.VBComponents đối tượng mô hình đối tượng hoạt động giống như một nét duyên dáng và thực hiện chính xác những gì tôi đang tìm kiếm, vì mục đích của bất cứ ai khác tìm kiếm một câu trả lời tương tự tôi thấy điều này trong khi nhìn vào đối tượng VBProject:

Set objExcel = CreateObject("Excel.Application") 
objExcel.Visible = True 
objExcel.DisplayAlerts = False 
Set objWorkbook = objExcel.Workbooks.Open("C:\scripts\test.xls") 
     Set xlmodule = objworkbook.VBProject.VBComponents.Add(1) 
     strCode = _ 
     "sub test()" & vbCr & _ 
     " msgbox ""Inside the macro"" " & vbCr & _ 
     "end sub" 
     xlmodule.CodeModule.AddFromString strCode 
objWorkbook.SaveAs "c:\scripts\test.xls" 
objExcel.Quit 

Nguồn: Scripting Guy Add a Macro to an Excel Spreadsheet

String for excel macro creation

2

Có lẽ cách đơn giản nhất là tạo thủ công tài liệu Excel chứa các macro mong muốn. Tài liệu này sau đó sẽ là máy chủ làm mẫu cho VBScript của bạn.

Thay vì tạo tệp mới, bạn sẽ sao chép mẫu này, mở nó trong Excel và điền dữ liệu đó bằng dữ liệu bằng VBScript của bạn.

Một tùy chọn phức tạp và linh hoạt hơn là sử dụng mô hình đối tượng Excel. Tìm đối tượng ActiveWorkbook.VBProject.VBComponents cho phép bạn thêm biểu mẫu, mô đun và lớp vào dự án VBA của tài liệu hiện tại. Tuy nhiên, tùy chọn này yêu cầu các thiết lập bảo mật nhất định (về cơ bản bạn phải cho phép truy cập có lập trình vào dự án VBA).