ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2937|回复: 5

[求助]怎样判断当前机器是否有已经打开的Word文档

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-11-3 09:54 | 显示全部楼层 |阅读模式

大家好,我初学VBA,有个小问题请大家帮忙:

怎样判断当前机器是否有已经打开的Word文档,若有怎样全部关闭它们?

万分感谢!

TA的精华主题

TA的得分主题

发表于 2006-11-3 11:51 | 显示全部楼层

欢迎vba_lover:

呵呵,你总得告诉大家,你在哪儿用,是在EXCEL中呢还是WORD中,如果是WORD中,本身已经打开了WORD了,请楼主描述得更清楚一些,谢谢。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-11-3 14:48 | 显示全部楼层

我想表达是: 

      1)在Word中,我想对另一个Word文档的内容进行一下修改,所以我想先确认一下在系统中那个我要修改的Word文档是否已经打开了

      2)在Excel中或其他Office中,我想知道当前系统中有没有打开了的Word文档

     请帮忙给个提示!非常感谢!

TA的精华主题

TA的得分主题

发表于 2006-11-3 18:32 | 显示全部楼层

呵呵,我有些糊涂了,要想知道word是否已经打开,看看任务栏上有没打开的word啊?点一下看看是否是自己已经修改的word?

不知道是不是这个意思啊?

TA的精华主题

TA的得分主题

发表于 2006-11-4 07:49 | 显示全部楼层
QUOTE:
以下是引用vba_lover在2006-11-3 14:48:06的发言:

我想表达是: 

      1)在Word中,我想对另一个Word文档的内容进行一下修改,所以我想先确认一下在系统中那个我要修改的Word文档是否已经打开了

      2)在Excel中或其他Office中,我想知道当前系统中有没有打开了的Word文档

     请帮忙给个提示!非常感谢!

问题1,请参考:

'* +++++++++++++++++++++++++++++
'* Created By SHOUROU@ExcelHome 2006-11-4 7:48:32
'
仅测试于System: Windows NT Word: 11.0 Language: 2052
'
0094^The Code CopyIn [ThisDocument-ThisDocument]^'
'*
-----------------------------

Option Explicit

Sub FindmyDoc()
    Dim oDoc As Document, myDocName As String, blnFound As Boolean
    myDocName = "C:\Documents and Settings\shourou\My Documents\Temp\my.doc"
    For Each oDoc In Documents
        If VBA.UCase(oDoc.FullName) = VBA.UCase(myDocName) Then blnFound = True: Exit For
    Next
    If blnFound = True Then
        MsgBox "
目标文档已经打开
!", vbInformation, "Microsoft Word"
    Else
        MsgBox "
目标文档没有打开
!", vbInformation, "Microsoft Word"
    End If
End Sub
'----------------------
Sub FindmyDoc2()
    Dim myDocName As String
    On Error Resume Next
    myDocName = "C:\Documents and Settings\shourou\My Documents\Temp\my.doc"
    Documents(myDocName).Activate
    If Err.Number = 4160 Then
        Err.Clear
        MsgBox "
目标文档没有打开
!", vbInformation, "Microsoft Word"
    Else
        MsgBox "
目标文档已经打开
!", vbInformation, "Microsoft Word"
    End If
End Sub
'----------------------


问题2,请参考(EXCEL中,其它OFFICE程序类同)

Option Explicit

Sub Example()
'在Excel中,使用后期绑定方式创建一个Word对象
    Dim myWd As Object, oDoc As Object
    On Error Resume Next
    Set myWd = GetObject(, "Word.Application")
    If Err.Number <> 0 Then
        Err.Clear
        Set myWd = CreateObject("Word.Application")
    End If
    For Each oDoc In myWd.Documents
        MsgBox oDoc.Name
    Next
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-11-4 21:13 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 05:35 , Processed in 0.030535 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表