繁体   English   中英

如何检查任何excel工作簿是否打开?

[英]How to check if ANY excel workbook is open?

我在excel中有一个VBA项目,该项目将工作簿隐藏在后台,并且仅显示用户窗体,但是工作正常,但是在打开其他工作簿时也会出现问题,因为它也会隐藏它们。 为了防止这种情况,我试图找到一种在代码中放置if语句的方法,该方法检查启动时是否打开了任何excel工作簿。 这可能吗? 我在网上只能找到是否知道打开文件名的方法。

我认为,由于“ ActiveWorkbook”也可以为空,因此VBA最安全的答案可能是:

Option Explicit

Public Function IsAnyWorkbookOpen() As Boolean
    IsAnyWorkbookOpen = (Application.Workbooks.Count > 0)
End Function

Sub test()
    MsgBox ("IsAnyWorkbookOpen returns: " + CStr(IsAnyWorkbookOpen()))
End Sub

这可以帮助您:

Public Sub openWorkbooks()
    Dim wb As Excel.Workbook
    For Each wb In Excel.Workbooks
        ' Do whatever you need to do here
        ' This prints the workbook name to the inmediate window
        Debug.Print wb.Name
    Next wb
End Sub

理想的解决方案不是强制多任务Excel用户关闭所有工作簿以便将其与用户表单一起使用,而是要在代码中专门处理该工作簿,以免影响其他工作簿。 您可以为此使用ActiveWorkbook.FullName

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM