Excel VBA - 使用工作簿B中的模块更新工作簿A中的数据

3
我有10个XLS文件,每个文件都包含几百行VBA代码,执行相同的任务。我想把这些公共代码移到第11个XLS文件中,并让其他10个文件调用第11个文件中的代码。公共代码必须能够访问调用XLS中的所有数据和工作表。在SO上的其他答案似乎没有解决这个要求。我可以将调用XLS的工作表作为参数传递吗,或者采取类似的方法?
2个回答

7

建议您创建一个XLA文件(Excel插件)来代替将此内容放入次要的XLS文件中。

XLA正是为这种情况而设计的。在这种情况下,XLA将按照您的意图工作。

有关创建XLA的详细信息,请参见此页面


3

是的,您可以将工作簿、工作表、范围等引用作为参数传递给任何函数:

Public Sub CallMe(ByVal oWorkbook as Workbook)

    Dim oWorksheet as Worksheet
    Set oWorksheet = oWorkbook.Worksheets(1)

    ' Do stuff...

End Sub

请注意,您可能需要重新编写从这10个工作簿中复制的大量代码,因为它们将充满对“此”工作簿的隐含引用,例如Worksheets(1)等。就像上面的示例一样,现在您需要使用oWorkbook.Workbooks(1)来代替。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接