我在excel中有一个VBA项目,它在后台隐藏工作簿并且只显示用户窗体,但它工作正常,当其他工作簿打开时会导致问题,因为它也隐藏了它们。为了防止这种情况,我试图找到一种在代码中放置if语句的方法,该方法检查在启动时是否打开了任何excel工作簿。这可能吗?我在网上找到的就是如果知道打开的文件名是如何检查的。
答案 0 :(得分:2)
我认为,既然'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
答案 1 :(得分:1)
这可能会对您有所帮助:
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
答案 2 :(得分:0)
理想的解决方案不是强制多任务Excel用户关闭所有工作簿以使用具有用户表单的工作簿,而是专门解决代码中的工作簿,以免影响其他工作簿。您可以使用ActiveWorkbook.FullName
。