How to check if ANY excel workbook is open?

后端 未结 3 2013
刺人心
刺人心 2021-01-24 19:11

I have a VBA project in excel which hides the workbook in the background and only shows the userform, it works fine however, causes problems when other workbooks are open as it

相关标签:
3条回答
  • 2021-01-24 19:13

    This may help you:

    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
    
    0 讨论(0)
  • 2021-01-24 19:16

    I think, since 'ActiveWorkbook' can also be empty, the safest answer for VBA may be:

    Option Explicit
    
    Public Function IsAnyWorkbookOpen() As Boolean
        IsAnyWorkbookOpen = (Application.Workbooks.Count > 0)
    End Function
    
    Sub test()
        MsgBox ("IsAnyWorkbookOpen returns: " + CStr(IsAnyWorkbookOpen()))
    End Sub
    
    0 讨论(0)
  • 2021-01-24 19:35

    The ideal solution is not to force a multitasking Excel user to close all their workbooks in order to use the one with the user form, but to specifically address the workbook in your code so that it doesn't effect other workbooks. You can use ActiveWorkbook.FullName for this.

    0 讨论(0)
提交回复
热议问题