我有10个XLS文件,每个文件都包含几百行VBA代码,执行相同的任务。我想把这些公共代码移到第11个XLS文件中,并让其他10个文件调用第11个文件中的代码。公共代码必须能够访问调用XLS中的所有数据和工作表。在SO上的其他答案似乎没有解决这个要求。我可以将调用XLS的工作表作为参数传递吗,或者采取类似的方法?
是的,您可以将工作簿、工作表、范围等引用作为参数传递给任何函数:
Public Sub CallMe(ByVal oWorkbook as Workbook)
Dim oWorksheet as Worksheet
Set oWorksheet = oWorkbook.Worksheets(1)
' Do stuff...
End Sub
Worksheets(1)
等。就像上面的示例一样,现在您需要使用oWorkbook.Workbooks(1)
来代替。