Documents.open并保留格式

时间:2019-02-12 17:55:43

标签: vba ms-word

当我将rtf数据“导入”到word中时,格式的保存方式与打开rtf文件时的保存方式不同。

我有很多rtf文件,希望将它们组合成word。当我使用代码保存csv文件时,格式或rtf文件丢失。

'Define Source
    On Error GoTo ErrorHandlerSourcePathIsEmpty
    Set SourceContent = Documents.Open(SourceFolder & "\" & TestFile.RTF, Visible:=False)
    On Error GoTo 0

'Insert source data into target.
'
    On Error GoTo ErrorHandlerTargetBookmark1
    wrdDoc.Bookmarks(TargetBookmark1).Range = SourceContent.Range.Text
    Application.ScreenUpdating = True
    On Error GoTo 0

我缺少诸如“ format:= SourceFormat”之类的东西吗?

1 个答案:

答案 0 :(得分:0)

Text属性从不携带格式信息,仅包含字符串(字符)。

有两种方法可以将另一个文件的插入格式的注释插入打开的文档中。由于看起来“源内容”文档不应该执行任何操作,因此无需打开它。在这种情况下,通常会首选第一种可能性(InsertFile方法):需要更少的资源,执行速度更快。

使用InsertFile方法

Dim sourceContent as String
sourceContent = SourceFolder & "\" & TestFile.RTF
wrdDoc.Bookmarks(TargetBookmark1).Range.InsertFile sourceContent

使用FormattedText属性

Text属性不同,FormattedText进行格式化。需要同时为目标范围和源范围设置该属性。

Dim SourceContent as Word.Document
Set SourceContent = Documents.Open(SourceFolder & "\" & TestFile.RTF, Visible:=False)
wrdDoc.Bookmarks(TargetBookmark1).Range.FormattedText = SourceContent.Content.FormattedText