2013-05-13 114 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 
相关问题