2017-06-05 106 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