用参数打开工作簿

问:是否有办法打开工作簿并通过此操作传递参数/参数?

这个想法是区分用户直接打开工作簿B(将触发其自动_打开代码)的情况和从其他工作簿的代码打开工作簿B的情况。

我build议的两个选项简而言之:

  1. 在打开的工作簿中,将此添加到ThisWorkbook模块中:

Public OpenedInCode as Boolean

你的调用工作簿需要打开工作簿,然后使用类似的东西

 With Workbooks("workbook name.xlsm") .OpenedInCode = True .RunAutoMacros xlAutoOpen End With 

然后Auto_Open代码需要检查这个值。 如果是False ,用户打开它; 如果为True ,则另一个工作簿将其打开。

选项2只是简单地使用Auto_Open中的代码创build另一个例程,该例程采用可选的布尔参数。 你的Auto_Open代码然后调用这个例程。 您的调用工作簿将使用Run

 Dim wb as Workbook Set wb = Workbooks.Open(path to file here) Application.Run "'" & wb.Name & "'!routine_name", True 

与选项1一样,被调用的例程只是检查参数是True还是False,并作出相应的反应。