为了账号安全,请及时绑定邮箱和手机立即绑定

检测Excel工作簿是否已打开

检测Excel工作簿是否已打开

回首忆惘然 2019-06-17 17:41:23
在VBA中,我以编程方式打开了一个名为“myWork.XL”的MSExcel文件。现在,我想要一个可以告诉我它的状态的代码-不管它是否是开放的。比如说IsWorkBookOpened("myWork.XL) ?检测Excel工作簿是否已打开
查看完整描述

3 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

试试这个:

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


查看完整回答
反对 回复 2019-06-17
?
郎朗坤

TA贡献1921条经验 获得超9个赞

如果它打开,它将在工作簿集合中:

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


查看完整回答
反对 回复 2019-06-17
  • 3 回答
  • 0 关注
  • 814 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信