如果当前word文档没保存,则点"提交"按钮实现保存并关闭word,并返回主窗口
如果word文档已经保存过并关闭了,则返回主窗口
后一半总是报错,
For Each aDoc In Documents:ActiveX部件不能创建对象!
Private Sub cmdRefer_Click()
For Each aDoc In Documents
    If InStr(1, aDoc.Name, App.Path & "\考生" & kskh & "\word" & Arraynum(1) & ".doc", 1) Then
        wordApp.Documents.Close True
        wordApp.Quit
        Set wordApp = Nothing
        Exit For
    Else
        Set wordApp = Nothing '释放内存
    End If
Next aDoc
Me.Hide
Frmmain.Show
End Sub

解决方案 »

  1.   

    你应该先定义word对象
    Dim app As New Word.Application
    Set app = CreateObject("Word.Application")
    app.Visible = True
    app.Documents.Open ("c:\11.doc")
    For Each aDoc In app.Documents
    MsgBox ".........."
    Next
      

  2.   

    你的代码有几处问题,试试一下:
    Private Sub cmdRefer_Click()
    For Each aDoc In wordApp.Documents
        If InStr(1, aDoc.Name, App.Path & "\考生" & kskh & "\word" & Arraynum(1) & ".doc", 1) Then
            wordApp.Documents.Close True
            Exit For
        End If
    Next aDoc
    wordApp.Quit
    Set wordApp = Nothing
    Me.Hide
    Frmmain.Show
    End Sub另外两点建议:
    1)从你的逻辑来看,根本没必要用一For循环枚举所有文档,直接用wordApp.Quit wdSaveChanges不就结了吗?
    2)If 条件可以用
     if aDoc.FullName = App.Path.... then
    这样更直观而且相信快一些。如果你担心大小写,可以用strcomp函数。
      

  3.   

    techgopher:
       对不起,分给错了!下次一定补上.