我需要创建一个新的Excel文件(从.csv文件)并导入两个宏文件:一个.bas和一个.cls。 第一次导入有效,但第二次导入未导入ThisWorkbook,而是新的类模块。
首先,我从现有的csv文件创建新的excel文件对象。
Dim oExcel
Set oExcel = CreateObject("Excel.Application")
Dim oBook
Set oBook = oExcel.Workbooks.Open(srcFile)
然后通过以下方式将.bas导入模块目录:
oBook.VBProject.VBComponents.Import scriptPath & "\" & "MyMacro" & ".bas"
当我对.cls文件进行相同的调用时,它会导入到新的类模块目录中,而不是ThisWorkbook中。
oBook.VBProject.VBComponents.Import scriptPath & "\" & "RightClickEntry" & ".cls"
必须将其导入ThisWorkbook,因为它会将一个条目添加到右键单击上下文菜单中,否则将不会显示。
答案 0 :(得分:1)
由于ThisWorkbook之类的自然界的结合,我一直在寻找的东西似乎是不可能的。我将使用所有宏创建一个模板Excel文件,在脚本中打开它,插入所有csv数据并将其另存为新的Excel文件。 这种方法也更好,因为它只需要脚本下面的一个附加文件(模板),而不需要两个导出的宏文件(或将来的更多文件)。