如何使实例保持唯一?

时间:2019-01-04 13:38:56

标签: excel vba excel-vba

在我的工作中,我制作了一个供整个团队使用的工作簿,将一个宏保存在personal.xlsb中,可以在其他excel实例中的任何位置打开它。 到目前为止,它的工作正常,但是我发现了一个我无法解决的问题:

当工作簿是最后一个打开的工作簿时(当excel的第一个实例关闭并且仅保留我的工作簿的实例时),我打开的下一个工作簿将从工作簿的SAME实例开始。 (最初在实例2中)迫使我再次运行代码以将其分开。

有什么方法可以专门保护该实例到工作簿本身吗?

对不起,我的英语不好。

谢谢

我的代码是:

Sub quickwb()

Dim NewExcel As Object    
Set NewExcel = New Excel.Application 

With NewExcel    
.DisplayAlerts = False    
.Visible = True    
.Workbooks.Open "workbooknameandpath"    
.DisplayAlerts = True  

End With    

End Sub

1 个答案:

答案 0 :(得分:0)

我不确定您的问题是什么,但是下面是一个用于打开工作簿(如果尚未打开)的函数。

Sub QuickWB()
    On Error Resume Next
    Dim wb As Workbook: Set wb = GetWorkBook("pathandbook")
    If Not wb Is Nothing Then
        ' Do something
    End If
End Sub

Public Function GetWorkBook(ByVal sFullName As String, Optional ReadOnly As Boolean) As Workbook
    Dim sFile As String: sFile = Dir(sFullName)
    On Error Resume Next
        Set GetWorkBook = Workbooks(sFile)
        If GetWorkBook Is Nothing Then Set GetWorkBook = Workbooks.Open(sFullName, ReadOnly:=ReadOnly)
    On Error GoTo 0
End Function