我有 10 个 XLS,每个都包含几百行 VBA,它们做同样的事情。我想将此通用代码移至第 11 个 XLS,并让其他 10 个调用第 11 个 XLS 中的代码。公共代码必须有权访问调用 XLS 中的所有数据和工作表。关于这个问题的其他答案似乎没有解决最后一个要求。我可以将调用 XLS 的工作表作为参数或类似的东西传递吗?
GregT
问问题
1260 次
2 回答
7
我建议不要将其放入辅助 XLS 文件中,而是创建一个 XLA 文件(一个 Excel 插件)。
这正是 XLA 所针对的场景。在这种情况下,XLA 将按照您想要的方式工作。
有关创建 XLA 的详细信息,请参阅此页面。
于 2009-07-07T16:07:44.823 回答
3
是的,您可以将工作簿、工作表、范围等的引用作为参数传递给任何函数:
Public Sub CallMe(ByVal oWorkbook as Workbook)
Dim oWorksheet as Worksheet
Set oWorksheet = oWorkbook.Worksheets(1)
' Do stuff...
End Sub
请注意,您可能必须重新编写从 10 个工作簿中复制的大量代码,因为它们将充满对“this”工作簿的隐式引用,例如Worksheets(1)
等。如上例所示,您现在需要oWorkbook.Workbooks(1)
而是说。
于 2009-07-07T16:21:54.453 回答