我正在为配偶编辑vb.net应用程序,部分要求是将合并字段从一个word文档复制到另一个word文档。我可以使用document.content.text复制它们,但它们是以文本形式出现的(我猜想应该这样)。
我想我已经通过以下方式选择了它们:
Dim tDocFields As Microsoft.Office.Interop.Word.Fields
tDocFields = tDocument.Content.Fields
然后我正在激活我要复制的文档,我想我需要使用相关的单词app复制到该文档中。
vDocument.Activate()
vWord.Selection. ??? Insert() ???
任何指针都会非常感激......我甚至在正确的路线上?
答案 0 :(得分:0)
您可以通过Fields
集合访问可用字段,但它的所有字段不仅包含合并字段。您可以轻松识别合并字段,但必须进行一些基本的解析才能提取字段名称。以下代码显示了一个消息框,其中包含文档中每个合并字段的内容:
Dim lo_field As Field
Dim lo_range As Range
Dim lo_fieldText As String
For Each lo_field In mo_doc.Fields
If lo_field.Type = WdFieldType.wdFieldMergeField Then
lo_range = lo_field.Code()
lo_fieldText = lo_range.Text
MsgBox(lo_fieldText)
End If
Next
找到每个合并字段后,您可以在新文档中创建新的合并字段,如下所示:
Imports Microsoft.Office.Interop.Word
Public Class Form1
Dim mo_doc As Document
Dim mo_missing As Object = System.Reflection.Missing.Value
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' Open word
Dim lo_word As New Application
lo_word.Visible = True
' Create a new word document
mo_doc = lo_word.Documents.Add(mo_missing, mo_missing, mo_missing, mo_missing)
mo_doc.Activate()
' Add a merge field
mo_doc.Fields.Add(lo_word.Selection.Range, WdFieldType.wdFieldMergeField, "mergefieldname", True)
End Sub
End Class
希望这有帮助!