检测Excel工作簿是否已打开

在VBA中,我以编程方式打开了一个名为“myWork.XL”的MSExcel文件。

现在,我想要一个可以告诉我它的状态的代码-不管它是否是开放的。比如说IsWorkBookOpened("myWork.XL) ?

检测Excel工作簿是否已打开

回首忆惘然
浏览 832回答 3
3回答

蝴蝶不菲

试试这个:Option ExplicitSub Sample()     Dim Ret     Ret = IsWorkBookOpen("C:\myWork.xlsx")     If Ret = True Then         MsgBox "File is open"     Else         MsgBox "File is Closed"     End IfEnd SubFunction IsWorkBookOpen(FileName As String)     Dim ff As Long, ErrNo As Long     On Error Resume Next     ff = FreeFile()     Open FileName For Input Lock Read As #ff     Close ff     ErrNo = Err    On Error GoTo 0     Select Case ErrNo    Case 0:    IsWorkBookOpen = False     Case 70:   IsWorkBookOpen = True     Case Else: Error ErrNo    End SelectEnd Function

郎朗坤

如果它打开,它将在工作簿集合中:Function BookOpen(strBookName As String) As Boolean     Dim oBk As Workbook    On Error Resume Next     Set oBk = Workbooks(strBookName)     On Error GoTo 0     If oBk Is Nothing Then         BookOpen = False     Else         BookOpen = True     End IfEnd FunctionSub testbook()     Dim strBookName As String     strBookName = "myWork.xls"     If BookOpen(strBookName) Then         MsgBox strBookName & " is open", vbOKOnly + vbInformation    Else         MsgBox strBookName & " is NOT open", vbOKOnly + vbExclamation    End IfEnd Sub
打开App,查看更多内容
随时随地看视频慕课网APP