我通过Workbook.GetOpenFilename打开一个工作簿,并在子程序中将其设置为Test_wkbk = ActiveWorkbook.Name,我想让Test_wkbk全局可用于其他模块中的其他子程序。我怎么做?
答案 0 :(得分:4)
检查私有变量是否有值。如果是,请使用它。如果它不使用GetOpenFileName
Private wLocations As Workbook
Public Property Get Locations() As Workbook
Dim sFile As String
If wLocations Is Nothing Then
sFile = Application.GetOpenFilename("*.xlsx,*.xlsx")
On Error Resume Next
Set wLocations = Workbooks(Dir(sFile))
If wLocations Is Nothing Then
Set wLocations = Workbooks.Open(sFile)
End If
On Error GoTo 0
End If
Set Locations = wLocations
End Property