2017-06-05 80 views
3

我遇到的問題是當我運行我的宏將當前Word文檔保存爲HTML類型時,該文檔仍保持打開狀態,但不是原始.docx格式,而是.htm格式。在HTML中保存副本時如何保留原始文檔文檔?

如果我在宏運行後編輯文檔,稍後它不會保留原始的.docx格式。

如果在保存不同格式的副本時如何保留原始格式,我將不勝感激。謝謝。

這裏是我的docx到html代碼在VBA

Sub DocToHTML() 

    Dim slice As String 
    Dim strDocName As String 
    Dim PathOrg As String 

    On Error Resume Next 

    strDocName = ActiveDocument.Name 
    slice = Left(strDocName, InStrRev(strDocName, ".") - 1) 
    strDocName = ActiveDocument.Path + "\" + slice 
    ActiveDocument.SaveAs2 FileName:=strDocName, FileFormat:=wdFormatHTML 

End Sub 

回答

2

之前你寫的代碼做這樣的事情停下來思考,你會怎麼做它在UI無碼。您編寫的任何代碼都會簡單地自動執行該過程。

那麼你會在UI中做什麼?

  1. 保存原始文檔以保留您所做的任何更改。
  2. 將副本另存爲html。
  3. 重新打開原始文檔。
  4. 可能關閉html版本。

那麼如下的代碼可以改寫:

Sub DocToHTML() 

    Dim origName As String 
    Dim saveName As String 
    Dim docHTML As Document 

    If Not ActiveDocument.Saved Then ActiveDocument.Save 
    origName = ActiveDocument.FullName 
    saveName = Left(origName, InStrRev(origName, ".") - 1) 
    ActiveDocument.SaveAs2 FileName:=saveName, FileFormat:=wdFormatHTML 

    Set docHTML = ActiveDocument 
    Documents.Open origName 
    docHTML.Close wdDoNotSaveChanges 

End Sub 
相關問題