我想把我的word文件重新保存为htm文件,以便制作windows帮助文件。
出错代码是Set oDoc = oWordApp.Documents.Open(Titel)
日文提示我看不明白,请大家帮我改进改进!!
Option Explicit
 'Microsoft Internet Controls
 '引用 Microsoft Scripting Runtime
    Dim oWordApp As Word.Application                      'WORD 应用
    Dim oDoc As Word.Document                             'WORD 文档
    
    Dim Fso As FileSystemObject
    Dim Fol As Folder
    Dim Fil As File
        
    
Private Sub Command1_Click()
Dim Titel As String
oWordApp.WindowState = wdWindowStateMinimize
    For Each Fil In Fol.Files
          Titel = vbNullString
          Titel = Fil.Name
          ReadWordDocument (Titel)
          DoEvents
    Next
        
End SubPrivate Sub Form_Load()
   Me.Show
   Set oWordApp = New Word.Application   Set Fso = CreateObject("Scripting.FileSystemObject")
   Set Fol = Fso.GetFolder("D:\Doc")End Sub
Sub ReadWordDocument(Titel As String)
    
'      Set oDoc = New Document
     Set oDoc = oWordApp.Documents.Open(Titel)
     
      oDoc.SaveAs "D:\Htm\" & Mid(Titel, 1, Len(Titel) - 4) & ".htm"
      
            
    oDoc.Close
    Set oDoc = Nothing
  End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  Set oWordApp = Nothing
  Set Fil = Nothing
  Set Fol = Nothing
  Set Fso = Nothing
End Sub

解决方案 »

  1.   

    Option Explicit
     'Microsoft Internet Controls
     '引用 Microsoft Scripting Runtime
        Dim oWordApp As Word.Application                      'WORD 应用
        Dim oDoc As Word.Document                             'WORD 文档
        
        Dim Fso As FileSystemObject
        Dim Fol As Folder
        Dim Fil As File
            
        
    Private Sub Command1_Click()
    Dim Titel As String
    oWordApp.WindowState = wdWindowStateMinimize
        For Each Fil In Fol.Files
              Titel = vbNullString
              Titel = Fil.Name
              ReadWordDocument (Titel)
              DoEvents
        Next
            
    End SubPrivate Sub Form_Load()
       Me.Show
       Set oWordApp = New Word.Application   Set Fso = CreateObject("Scripting.FileSystemObject")
       Set Fol = Fso.GetFolder("C:\")End Sub
    Sub ReadWordDocument(ByVal Titel As String)
        If InStr(1, Titel, ".doc", vbTextCompare) <= 0 Then Exit Sub
        
    '      Set oDoc = New Document
         Set oDoc = oWordApp.Documents.Open("C:\" & Titel)
         
          oDoc.SaveAs "D:\Htm\" & Mid(Titel, 1, Len(Titel) - 4) & ".htm", wdFormatHTML
          
                
        oDoc.Close
        Set oDoc = Nothing
      End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
      Set oWordApp = Nothing
      Set Fil = Nothing
      Set Fol = Nothing
      Set Fso = Nothing
    End Sub
    '已更正,把C盘下的所有doc文件转为D:\Htm\xxx.htm文件
      

  2.   

    纵观楼主的代码可谓漏洞百出:
    1.你没判断文件类型
    2.传入路径中不包含路径,只有文件名
    3.没有指定转换为html格式
    更正这三点就完成任务了
    另外代码风格也不大好噢,嘿嘿
      

  3.   

    Titel = vbNullString
    Titel = Fil.Name
    -------------------------------
    Fil.Name得到的仅仅是文件名,用Fil.Path得到的才是全路径
      

  4.   

    呵呵,我的doc文件夹里面都是doc文件,不用考虑文件类型。
          没有传入文件类型就是我的粗心了,不好意思哦,我说怎么老是打不开呢?给出的日文提示我也看不明白。
     没有指定转换为html格式 这个嘛就是我不会,呵呵,还有风格问题,我以后一定改正改正!
    谢谢2位
      

  5.   

    楼主的代码只需要改两个地方(已经测试成功):1 是读取的文件路径 :Titel = Fil.Name 改为    Titel = Fil.Path
     
    2 是保存文件的路径:
    oDoc.SaveAs "D:\Htm\" & Mid(Titel, 1, Len(Titel) - 4) & ".htm"
    改为:
    oDoc.SaveAs  Mid(Titel, 1, Len(Titel) - 4) & ".htm"
      

  6.   

    打开文件要加入路径,fil.name只是得到文件名
      

  7.   

    还有一个问题,最后怎么结束oWordApp 
     Set oWordApp = Nothing 后还是存在一个word应用,里面虽然已经没有文档了!!
      

  8.   


    'oWordApp.Quit False
    'Set oWordApp = Nothing 
      

  9.   

    在Form_QueryUnload的时候关闭对象,并释放所有与Word有关的对象(如果有对象没释放,那么Word就不会完全退出):Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
      oWordApp.DisplayAlerts = False '退出的时候不给出提示,直接退出
      oDoc.Close False
      oWordApp.Quit
      Set oDoc=Nothing
      Set oWordApp = Nothing
      Set Fil = Nothing
      Set Fol = Nothing
      Set Fso = Nothing
    End Sub