如何通过 VBS 将宏导入 Excel

How to import a macro to Excel by VBS

我需要创建一个新的 Excel 文件(来自 .csv)并导入两个宏文件:一个 .bas 和一个 .cls。 第一个导入有效,但第二个导入没有导入到 ThisWorkbook,而是导入到新的 class 模块。

首先,我从现有的 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 文件执行相同的调用时,它被导入到新的 class 模块目录而不是 ThisWorkbook。

    oBook.VBProject.VBComponents.Import scriptPath & "\" & "RightClickEntry" & ".cls"

必须将其导入 ThisWorkbook,因为它会向右键单击上下文菜单添加一个条目,否则该菜单将不会显示。

我一直在寻找的东西似乎是不可能的,因为 ThisWorkbook 的结合是自然的。我将创建一个包含所有宏的模板 Excel 文件,在我的脚本中打开它,插入所有 csv 数据并将其另存为新的 Excel 文件。 这种方法也更好,因为它只需要脚本下面的一个附加文件(模板)而不是两个导出的宏文件(或将来更多)。