关于获取系统中所有EXCEL对象的方法

脆皮大雪糕 2009-04-12 09:04:19
目前想实现一个功能,就是获取系统中所有已经打开的excel中的内容。

与此相同的一个目标是获取系统中所有已经打开的word对象中的内容。我的做法是:
     
Dim WordObj As Word.Application
Set WordObj = Word.Application
For i = 1 To WordObj.Documents.Count
Debug.Print WordObj.Documents(i).Name
Next

这已经能够获得系统中所有的已经打开的WORD文档,但使用相同的方法折腾excel.Application 却是创建了一个新的excel对象。郁闷了,office的application针对word和excel是不同的?!

请问有什么方式能够获取到系统中所有已经打开的excel对象
...全文
369 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
budingqhh 2010-07-14
  • 打赏
  • 举报
回复
我也遇到同样问题,学习
woshi200969 2009-06-18
  • 打赏
  • 举报
回复
看看那
脆皮大雪糕 2009-04-14
  • 打赏
  • 举报
回复
老鸟的方法验证通过,感谢AisaC的建议。同时感谢所有参与的人
脆皮大雪糕 2009-04-13
  • 打赏
  • 举报
回复
弟兄们加把劲啊,300分不够再加,呵呵
脆皮大雪糕 2009-04-13
  • 打赏
  • 举报
回复
楼上几位没看明白我的意思
Set ExcelObj = Excel.Application
的时候实际上已经创建了一个新的application对象
和Set ExcelObj = New Excel.Application 的效果是一样的。对于一个新建的appication对象WorkBooks怎么着都是空的

Set WordObj = Word.Application

Set WordObj = new Word.Application
的效果却是不同的,前者能够得到所有的document,貌似word的appication是系统全局的。

现在我就想得到系统中所有的workbook 不知道大家有没有什么方法
神马都能聊 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ling242a 的回复:]
你打开多个Excel文件,实际上只用到一个Excel Application
[/Quote]
似乎版本不同,这个是不一样的.
白发程序猿 2009-04-13
  • 打赏
  • 举报
回复
Word和Excel确实是不同的
Excel是以WorkBook的形式存在
你打开多个Excel文件,实际上只用到一个Excel Application
当然如果是用New的形式在代码中打开
就有可能有多个Excel Application
要看打开的Excel文件数,还需要枚举WorkBook
神马都能聊 2009-04-13
  • 打赏
  • 举报
回复
其实老鸟的代码是可用的,但是却存在问题.

因为默认的Excel打开后,并不像word一样,在对象运行表中注册,你可以先Shell "C:\Program Files\Microsoft Office\Office11\Excel.EXE", vbMinimizedFocus 这样就会在运行表注册Excel.application对象.

然后
For i = 1 To xlApp.Workbooks.Count
Debug.Print xlApp.Workbooks(i).Name
Next
东方之珠 2009-04-13
  • 打赏
  • 举报
回复
用API枚举,打开的Excel工作表标题均含有“Microsoft Excel - ****.xls”的格式:
http://www.qqgb.com/program/vb/vbjq/program_175471.html
Tiger_Zhao 2009-04-13
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim xlApp As Excel.Application
Dim i As Long

On Error Resume Next
Set xlApp = GetObject(, "Excel.Application")
On Error GoTo 0
If xlApp Is Nothing Then
MsgBox "没有打开 Excel", vbInformation
Exit Sub
End If

For i = 1 To xlApp.Workbooks.Count
Debug.Print xlApp.Workbooks(i).Name
Next

Set xlApp = Nothing
End Sub
goosen 2009-04-13
  • 打赏
  • 举报
回复
判断每个打开的工作薄,,再判断每个工作薄里有几个工作表..再得到表名 不知可行否
白发程序猿 2009-04-13
  • 打赏
  • 举报
回复
用API去得到进程,不知是否可实现
goosen 2009-04-12
  • 打赏
  • 举报
回复
关注
东方之珠 2009-04-12
  • 打赏
  • 举报
回复
不知道 Workbooks 集合 能否枚举到所有的,没试过。帮顶!
LWMWORK 2009-04-12
  • 打赏
  • 举报
回复
粘多了
LWMWORK 2009-04-12
  • 打赏
  • 举报
回复
好像xlApp.Workbooks.Count并不计数已经打开的excel文件,只对新建的文件或新建后又打开的文件计数。
从Excel VB.chm中看count属性应用于下列集合中,没找到想要的

AddIns 集合对象


Adjustments 对象


AllowEditRanges 集合


Areas 集合


Axes 集合对象


Borders 集合


CalculatedFields 集合对象


CalculatedItems 集合对象


CalculatedMembers 集合


Characters 对象


ChartGroups 集合


ChartObjects 集合对象


Charts 集合


Comments 集合对象


CubeFields 集合对象


CustomProperties 集合


CustomViews 集合对象


DataLabels 集合对象


DiagramNodeChildren 集合


DiagramNodes 集合


Dialogs 集合对象


Filters 集合对象


FormatConditions 集合对象


GroupShapes 集合对象


HPageBreaks 集合对象


Hyperlinks 集合


LegendEntries 集合对象


Names 集合对象


ODBCErrors 集合对象


OLEDBErrors 集合对象


OLEObjects 集合对象


Panes 集合对象


Parameters 集合对象


Phonetics 集合对象


PivotCaches 集合对象


PivotFields 集合对象


PivotFormulas 集合对象


PivotItemList 集合


PivotItems 集合对象


PivotTables 集合对象


Points 集合对象


PublishObjects 集合对象


QueryTables 集合对象


Range 集合


RecentFiles 集合对象


Scenarios 集合对象


SeriesCollection 集合对象


ShapeNodes 集合对象


ShapeRange 集合


Shapes 集合


Sheets 集合对象


SmartTagActions 集合


SmartTagRecognizers 集合


SmartTags 集合


Styles 集合


Trendlines 集合对象


UsedObjects 集合


UserAccessList 集合


VPageBreaks 集合对象


Watches 集合


Windows 集合对象


Workbooks 集合


Worksheets 集合




Adjustments 对象


AllowEditRanges 集合


Areas 集合


Axes 集合对象


Borders 集合


CalculatedFields 集合对象


CalculatedItems 集合对象


CalculatedMembers 集合


Characters 对象


ChartGroups 集合


ChartObjects 集合对象


Charts 集合


Comments 集合对象


CubeFields 集合对象


CustomProperties 集合


CustomViews 集合对象


DataLabels 集合对象


DiagramNodeChildren 集合


DiagramNodes 集合


Dialogs 集合对象


Filters 集合对象


FormatConditions 集合对象


GroupShapes 集合对象


HPageBreaks 集合对象


Hyperlinks 集合


LegendEntries 集合对象


Names 集合对象


ODBCErrors 集合对象


OLEDBErrors 集合对象


OLEObjects 集合对象


Panes 集合对象


Parameters 集合对象


Phonetics 集合对象


PivotCaches 集合对象


PivotFields 集合对象


PivotFormulas 集合对象


PivotItemList 集合


PivotItems 集合对象


PivotTables 集合对象


Points 集合对象


PublishObjects 集合对象


QueryTables 集合对象


Range 集合


RecentFiles 集合对象


Scenarios 集合对象


SeriesCollection 集合对象


ShapeNodes 集合对象


ShapeRange 集合


Shapes 集合


Sheets 集合对象


SmartTagActions 集合


SmartTagRecognizers 集合


SmartTags 集合


Styles 集合


Trendlines 集合对象


UsedObjects 集合


UserAccessList 集合


VPageBreaks 集合对象


Watches 集合


Windows 集合对象


Workbooks 集合


Worksheets 集合


7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧