我有一个MS Access表单,可以从另一个网站打开Excel二进制文件(.xlsb)。我正在尝试检查所有用户打开的Excel文件,以便在正确的工作簿上工作。
通过在打开的但未保存的Excel文件上运行以下循环,GetObject找不到刚刚打开的工作簿。这段代码确实找到了我可能已经打开的其他Excel文件。
但是,如果我保存了从网络上打开的Excel文件,请先关闭并重新打开它,然后再尝试使用以下代码查找打开的Excel文件,该代码也会找到该文件。
是否有更好的方法来捕获刚打开的文件名?在新的Excel文件上,我需要过滤来自特定Excel选项卡的数据并将其添加到Access表中。
Dim xlApp As Excel.Application
Dim strWBList As String
strWBList = ""
On Error Resume Next
Set xlApp = GetObject(, "Excel.Application")
If Err.Number = 0 Then
Dim xlWB As Excel.Workbook
For Each xlWB in xlApp.Workbooks
If Len(strWBList) > 0 Then
strWBList = strWBList & ","
End If
strWBList = strWBList & xlWB.Name
Next xlWB
Set xlApp = Nothing
Set xlWB = Nothing
End If
MsgBox strWBList