vba 无法遍历到所有打开的工作簿

1.只能遍历到工程资源管理器显示到的工作簿。
2.另外双击打开的工作簿无法遍历到。
3.用代码所在excel文档打开的工作簿也可以遍历到

建议用vba 打开excel,如果要访问已打开的excel,应该是做不到的,这个可以用python的puwinauto模块实现

VBA:GetObject()方法获取已经打开的其他组件中的对象

示例代码:在Word中查看打开的Excel信息

Sub Word中获取打开的Excel对象()
    Dim ex As Object, i As Integer
    
    Set ex = GetObject(, "Excel.Application")  '创建将打开的Excel对象
    
    For i = 1 To ex.WorkbookS.Count  '遍历打开的Excel中的工作簿
        Debug.Print ex.WorkbookS(i).FullName  '打印工作簿的名字
    Next
    
    Set ex = Nothing
End Sub

操作图示

img