我想创建一个宏,该宏将:
打开浏览器窗口以选择一个保存的工作簿(我们称其为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上查找?
非常感谢
答案 0 :(得分:1)
欢迎来到SO。您的对象resultWorkbook
已链接到Workbooks.Open(pathString)
,因此,只要您不将其与Set resultWorkbook = Nothing
取消链接,就可以始终在任何子项上引用该工作簿(但在以下位置将变量声明为Public:该模块,位于所有子模块之外)。
要将变量声明为公共变量,请阅读: