用参数打开工作簿
问:是否有办法打开工作簿并通过此操作传递参数/参数?
这个想法是区分用户直接打开工作簿B(将触发其自动_打开代码)的情况和从其他工作簿的代码打开工作簿B的情况。
我build议的两个选项简而言之:
- 在打开的工作簿中,将此添加到
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,并作出相应的反应。