2013-05-13 113 views
1

我想設置變量以始終引用特定的工作簿;現在我按照下面列出的方式進行操作,但我不希望它每次都打開文檔。我應該有什麼呢?還請注意是否有任何變量需要改變或沿着這些線。將變量設置爲工作簿

Dim wbkC as workbook 

Set WbkC = Workbooks.Open(Filename:="G:\Reporting\ReportCompare.xls") 
+0

你在用什麼?你可以隱藏工作簿或只使用地址,如果託管一個公式? – glh 2013-05-13 11:46:40

+2

使用'wbck.windows(1).visable = false' – glh 2013-05-13 11:57:47

+0

@glh我基本上用它來簡化引用範圍。而不是輸入工作簿(名稱).worksheets(「sheet1」)。range(「A」)。value我寧願鍵入wbkA.worksheets(「sheet1」)。range(「A」)。value – 2013-05-13 12:06:59

回答

2

如果不是,可以使用自定義函數打開它,或者如果是,則抓取打開的副本。

Public Sub Main() 

    Dim wbkC As Workbook 

    'This will open it 
    Set wbkC = GetWorkbookReference("G:\Reporting\ReportCompare.xls") 

    'This will not open it b/c it's already open 
    Set wbkC = GetWorkbookReference("G:\Reporting\ReportCompare.xls") 

End Sub 
Public Function GetWorkbookReference(ByVal sFullName As String) As Workbook 

    Dim wbReturn As Workbook 

    On Error Resume Next 
     'If it's open, get a reference to it 
     Set wbReturn = Workbooks(Dir$(sFullName)) 
    On Error GoTo 0 

    'If it's not open, open it 
    If wbReturn Is Nothing Then 
     Set wbReturn = Workbooks.Open(sFullName) 
    End If 

    Set GetWorkbookReference = wbReturn 

End Function 
相關問題