用参数打开工作簿

时间:2017-03-16 13:47:08

标签: excel vba excel-vba

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

想法是来区分用户直接打开工作簿B(将触发其自动_开放代码)的情况和从代码中打开工作簿B的情况另一本工作簿.

1 个答案:

答案 0 :(得分:2)

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

  1. 在您打开的工作簿中,将其添加到ThisWorkbook模块:
  2. 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并做出相应的反应。