使用Access 2010 VBA列出所有打开的Excel工作簿

埃斯特拉卡

好吧,我一定在这里缺少一些细微的东西。

在Excel 2010中,此VBA可以工作:

Private Sub ExcelTest()

Dim wb As Workbook

For Each wb In Workbooks

    Debug.Print wb.Name

Next wb

End Sub

我试图在Access VBA中复制它,并且在Access 2010中尝试了以下方法,但均未成功。

Private Sub AccessTest1()
'Derived from http://stackoverflow.com/questions/15958061/controlling-excel-
'workbook-from-access-2010-vba

Dim xlApp As Excel.Application
Dim xlWB As Excel.Workbook

Set xlApp = New Excel.Application

For Each xlWB In Excel.Workbooks
    Debug.Print xlWB.Name
Next xlWB

'Nothing happens.
'Stepping through and hovering:
'xlApp = "MicroSoft Excel"
'xlWB = Nothing
'xlWB.Name = Object variable or With block variable not set.
'But doesn't throw an error.

End Sub

Private Sub AccessTest2()
'Derived from http://stackoverflow.com/questions/5729195/how-to-refer-to-excel-
'objects-in-access-vba

Dim xlApp As Excel.Application

Dim wb As Excel.Workbook

Set xlApp = New Excel.Application

For Each wb In Excel.Workbooks  '<--- Like this nothing happens
    Debug.Print wb.Name
Next wb

'Stepping through and hovering:
'xlApp = "MicroSoft Excel"
'wb = Nothing
'wb.Name = Object variable or With block variable not set.  But doesn't throw an error.

For Each wb In xlApp.Workbooks  '<--- This throws a "Object variable or 
                                 'With block variable not set" error
    Debug.Print wb.Name
Next wb

End Sub

Private Sub AccessTest3()
'Derived from http://stackoverflow.com/questions/5729195/how-to-refer-to-excel-
'objects-in-access-vba

Dim objExcelApp As Object
Dim wb As Object

Set objExcelApp = CreateObject("Excel.Application")

Set wb = objExcelApp.Workbook  '<--- Throws "Object doesn't support this property
                               'or method error"
'Hovering after error:
'objExcelApp = "MicroSoft Excel"
'wb = Nothing

For Each wb In objExcelApp.Workbooks
    Debug.Print wb.Name
Next wb

End Sub

我肯定在Access中检查了“ Microsoft Excel 14.0对象库”参考。我只是想列出所有打开的Excel工作簿,以便我可以对这些信息采取行动。感谢您的帮助。

博登

设置xlApp = New Excel.Application创建一个新的Excel实例-当然您那里没有任何工作簿。

您想要达到的目标是通过一个已经打开的Excel实例。因此,您必须使用getObject()。

For语句中还有另一个错误...您必须使用xlApp.Workbooks而不是Excel.Workbooks。

以下代码应提供正确的结果:

Dim xlApp As Excel.Application
Set xlApp = GetObject(, "Excel.Application")

Dim xlWB As Excel.Workbook
For Each xlWB In xlApp.Workbooks
    Debug.Print xlWB.Name
Next xlWB

Set xlApp = Nothing
Set xlWB = Nothing

最后,请记住将对象变量设置为Nothing,以消除它们的困扰。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用变量的Excel 2010 vba工作簿方法

来自分类Dev

使用VBA的Access 2010 Building中的报表

来自分类Dev

如何使用 VBA 将所有 Excel 工作簿工作表导入 Access。

来自分类Dev

如何使用Excel 2010个人宏工作簿?

来自分类Dev

如何使用VBA循环从多个表中删除所有记录?Access 2010

来自分类Dev

在Access 2010中使用宏打开Visio绘图

来自分类Dev

Excel 2010在Access 2010项目上的后期绑定

来自分类Dev

Excel 2010电子邮件VBA发送整个工作簿

来自分类Dev

使用Excel VBA在工作簿中查找所有匹配项

来自分类Dev

Excel 2010在通过VBA打开另一个工作簿时要求两次PW

来自分类Dev

检查安装的 Access 2010 是否有例外

来自分类Dev

需要在Excel 2010中使用vba删除所有<font>,</ font>和<Font Color =“ 000000”> html标签

来自分类Dev

如何使用Excel VBA 2010从Excel工作表中读取数据

来自分类Dev

使用通配符打开Excel工作簿

来自分类Dev

使用Python打开Excel工作簿

来自分类Dev

使用Visio 2010 Viewer打开VSD文件

来自分类Dev

Word 2010中的VBA不会迭代所有打开的文档

来自分类Dev

在VB2010中打开受密码保护的Access 2010数据库

来自分类Dev

在Excel 2010中使用IF函数

来自分类Dev

使用条件格式识别公式(Excel 2010)

来自分类Dev

将Excel 2010与Visual FOXPRO结合使用

来自分类Dev

使用FileDialog打开工作簿并在Excel VBA中进行操作

来自分类Dev

使用VBA通过个人工作簿宏打开另一个Excel文件

来自分类Dev

Excel VBA,使用 FileDialog 打开多个工作簿并引用它们

来自分类Dev

当Excel工作簿具有打开的连接时,写入Access表失败

来自分类Dev

当Excel工作簿具有打开的连接时,写入Access表失败

来自分类Dev

在工作簿Excel 2010中激活隐藏工作表

来自分类Dev

VBA Excel-2010 如何将数据添加到外部工作簿

来自分类Dev

Excel 2010:使用vba更频繁地刷新外部数据?

Related 相关文章

  1. 1

    使用变量的Excel 2010 vba工作簿方法

  2. 2

    使用VBA的Access 2010 Building中的报表

  3. 3

    如何使用 VBA 将所有 Excel 工作簿工作表导入 Access。

  4. 4

    如何使用Excel 2010个人宏工作簿?

  5. 5

    如何使用VBA循环从多个表中删除所有记录?Access 2010

  6. 6

    在Access 2010中使用宏打开Visio绘图

  7. 7

    Excel 2010在Access 2010项目上的后期绑定

  8. 8

    Excel 2010电子邮件VBA发送整个工作簿

  9. 9

    使用Excel VBA在工作簿中查找所有匹配项

  10. 10

    Excel 2010在通过VBA打开另一个工作簿时要求两次PW

  11. 11

    检查安装的 Access 2010 是否有例外

  12. 12

    需要在Excel 2010中使用vba删除所有<font>,</ font>和<Font Color =“ 000000”> html标签

  13. 13

    如何使用Excel VBA 2010从Excel工作表中读取数据

  14. 14

    使用通配符打开Excel工作簿

  15. 15

    使用Python打开Excel工作簿

  16. 16

    使用Visio 2010 Viewer打开VSD文件

  17. 17

    Word 2010中的VBA不会迭代所有打开的文档

  18. 18

    在VB2010中打开受密码保护的Access 2010数据库

  19. 19

    在Excel 2010中使用IF函数

  20. 20

    使用条件格式识别公式(Excel 2010)

  21. 21

    将Excel 2010与Visual FOXPRO结合使用

  22. 22

    使用FileDialog打开工作簿并在Excel VBA中进行操作

  23. 23

    使用VBA通过个人工作簿宏打开另一个Excel文件

  24. 24

    Excel VBA,使用 FileDialog 打开多个工作簿并引用它们

  25. 25

    当Excel工作簿具有打开的连接时,写入Access表失败

  26. 26

    当Excel工作簿具有打开的连接时,写入Access表失败

  27. 27

    在工作簿Excel 2010中激活隐藏工作表

  28. 28

    VBA Excel-2010 如何将数据添加到外部工作簿

  29. 29

    Excel 2010:使用vba更频繁地刷新外部数据?

热门标签

归档