答案 0 :(得分:2)
我建议的两个选项,简而言之:
ThisWorkbook
模块: Public OpenedInCode as Boolean
您的调用工作簿需要打开工作簿,然后使用类似
的内容With Workbooks("workbook name.xlsm")
.OpenedInCode = True
.RunAutoMacros xlAutoOpen
End With
然后Auto_Open
代码需要检查此值。如果它是False
,则用户打开它;如果True
,则您的其他工作簿会将其打开。
选项2只是使用Auto_Open
中的代码创建另一个例程,该代码采用可选的布尔参数。您的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并做出相应的反应。