如何在使用VBA宏向Word文档添加文本时保持格式

时间:2015-11-16 11:01:32

标签: vba ms-word formatting word-vba

我正在编写一个宏,用于从一个文档中的表格单元格中复制文本,并将其作为平面文本插入另一个文档中。虽然文本本身提取得很好,但缺少标签。而且我不知道如何保持格式化而不是将表保留在文本周围。

For Each oCell In oRow.Cells

     sCellText = oCell.Range
     sCellText = Left$(sCellText, Len(sCellText) - 2)

     If (RegExp_Script.Test(sCellText) = True) Then

        num1 = RegExp_Script.Replace(sCellText, "$1")
        num2 = RegExp_Script.Replace(sCellText, "$2")

        Set docSingle = Documents.Add
        Selection.TypeText (sCellText)

        docSingle.Range.Find.Execute Findtext:="^m", ReplaceWith:=""

        strNewFileName = Replace(docMultiple.FullName, ".doc", "-e" & num1 & "_" & num2 & ".doc")
        docSingle.SaveAs strNewFileName 'save the new single-paged document

        docSingle.Close

    End If

  Next oCell

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

感谢您的贡献@CindyMeister,@ Jean-Pierre。 我正在谈论缩进,按Tab键创建,抱歉不准确。 也已经以不同的方式解决了这个问题:从表格单元格中提取文本,而不是从单元格中提取文本,并在将表格边框复制到新文档后将其删除。 像那样:

oCell.Range.Copy 'copy the page into the Windows clipboard
Set docSingle = Documents.Add 'create a new document           
docSingle.Range.Paste 'paste the clipboard contents to the new document
Dim oTable As Word.Table
For Each oTable In ActiveDocument.Tables
    oTable.Rows.ConvertToText Separator:=wdSeparateByParagraphs, _
    NestedTables:=True