VBA获得开放的Excel Binary Workbook

时间:2019-03-31 19:04:42

标签: excel access-vba

我有一个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

0 个答案:

没有答案