在Excel里用VBA判断某一DOC文件是否已打开
该DOC可能是用 WordApp.Documents(DocName).Open 方式打开
也可能是用户操作WORD来打开, 比如用在 资源管理器 里双击相应的文件名打开了该文件我现在希望知道无论有什么方式打开, 用VBA做出准确判断.

解决方案 »

  1.   

    Const FILENAME As String = "C:\test.doc"Function FileIsOpen(sFile As String) As Boolean
        
        On Error Resume Next
        
        Open sFile For Input Lock Read Write As #1
        
        FileIsOpen = Err
        
    End FunctionSub main()
        MsgBox FileIsOpen(FILENAME)
    End Sub
      

  2.   

    利用出错陷井的思路我也想过, 但后续处理无从下手, 所以想用
        For Each doc In Documents
    来枚举, 但试了一下不行.可能是因为当前WordApp对象中的Documents不包括用户手工打开的Word文档.如果 C:\test.doc 是打开的, 那么如果把它关闭? 关闭时如何控制保存与放弃修改并关闭?
      

  3.   

    楼主想干什么呢?如果是想打开它来操作,则可用getobject.当已打开时,自动获得对其控制权,没有打开时则会打开它
      

  4.   

    在Excel里用VBA把Excel的数据写入一个DOC文档
    当Excel的VBA运行时,DOC文档可能已经被用户打开,这样就会报错
    希望在用
    Set wDoc = WordApp.Documents.Open(strWordName)
    语句打开DOC文件之前检测该DOC的状态
    如果是关闭状态当然最好
    如果已打开,VBA可将其关闭,并且可以用程序控制关闭时是否保存.leolan(史留香) ( ) 信誉:130 
    帮助解决了检测文档是否已打开的问题如果能解决文档的关闭与保存的问题, 将另开帖给分
      

  5.   

    在Excel里用VBA把Excel的数据写入一个DOC文档
    当Excel的VBA运行时,DOC文档可能已经被用户打开,这样就会报错
    希望在用
    Set wDoc = WordApp.Documents.Open(strWordName)
    语句打开DOC文件之前检测该DOC的状态
    如果是关闭状态当然最好
    如果已打开,VBA可将其关闭,并且可以用程序控制关闭时是否保存.leolan(史留香) ( ) 信誉:130 
    帮助解决了检测文档是否已打开的问题如果能解决文档的关闭与保存的问题, 将另开帖给100分
      

  6.   

    有没高手来帮着看一下?祝大家端午节快乐:http://djyangyong.nease.net/flash/2136.swf