[英]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.