Excel VBA-打开工作簿并为其他宏记住它

Excel VBA-打开工作簿并为其他宏记住它,excel,vba,Excel,Vba,我想创建一个宏,它将: 打开浏览器窗口以选择保存的工作簿(我们称之为WB1) 在同一宏中,为WB1指定某种形式的引用,以允许其他宏引用它 我可以通过以下代码实现步骤1: Sub Add_New_Survey() Dim pathString As String Dim resultWorkbook As Workbook Dim found As Boolean pathString = Application.GetOpenFilename(fileFilter:="All Files (*

我想创建一个宏,它将:

  • 打开浏览器窗口以选择保存的工作簿(我们称之为WB1)

  • 在同一宏中,为WB1指定某种形式的引用,以允许其他宏引用它

  • 我可以通过以下代码实现步骤1:

    Sub Add_New_Survey()
    Dim pathString As String
    Dim resultWorkbook As Workbook
    Dim found As Boolean
    pathString = Application.GetOpenFilename(fileFilter:="All Files (* . xl*) , *.xl* ")
    
    ' check if it's already opened
    For Each wb In Workbooks
        If InStr(pathString, wb.Name) > 0 Then
            Set resultWorkbook = wb
            found = True
            Exit For
        End If
    Next wb
    
    If Not found Then
        Set resultWorkbook = Workbooks.Open(pathString)
    End If
    End Sub
    
    这将打开工作簿。然后,我需要在WB1上执行一些我想自动化的数据准备活动。当我从浏览器打开WB1时,有没有一种方法可以引用它,这样下面的宏就可以专门查看WB1了


    非常感谢

    欢迎来到SO。您的对象
    resultWorkbook
    链接到
    工作簿。打开(路径字符串)
    ,因此只要您不将其与
    Set resultWorkbook=Nothing
    解除链接,您就可以始终在任何子系统上引用该工作簿(但在模块中首先将变量声明为Public,在所有子系统之外)

    要将变量声明为公共变量,请阅读:


    欢迎来到SO。您的对象
    resultWorkbook
    链接到
    工作簿。打开(路径字符串)
    ,因此只要您不将其与
    Set resultWorkbook=Nothing
    解除链接,您就可以始终在任何子系统上引用该工作簿(但在模块中首先将变量声明为Public,在所有子系统之外)@FoxfireAndBurnsAndBurns——这是答案,不是评论!(这也是一个正确的答案,值得投一两张赞成票和打勾。)谢谢@FreeMan!我会把它寄出去的!谢谢你的帮助没问题@Azuremars。如果出现任何其他疑问或问题,请发布新问题。此外,如果这个答案有帮助,请将其标记为正确。