我正在尝试将 MailMerge 与 Word 2010 一起使用。
我有一个 TAB 分隔的文件 database.dat,如下所示:
ID Name Street
1 John FooBar 1
2 Smith FooBar 2
此文件在 Word 中使用以下 VBA 代码:
ActiveDocument.MailMerge.OpenDataSource Name:="C:/database.dat", _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, Revert:=False, Format:=wdOpenFormatAuto
我现在可以在文本中使用文件中的字段。所以一切正常。
问题:
我需要对 VBA 中的数据做一些进一步的阐述,所以我获取 MergeField 值:
Function getInfoField(mergefield As String)
On Error GoTo MergeFieldNotFound:
getInfoField = ActiveDocument.MailMerge.DataSource.DataFields(mergefield).Value
GoTo EndFunc
MergeFieldNotFound:
getInfoField = ""
EndFunc:
End Function
但如果合并字段值的长度超过 255 个字符,它将被截断。所以如果我插入
MsgBox Len(ActiveDocument.MailMerge.DataSource.DataFields(mergefield).Value)
它为具有例如 500 个字符的字符串输出 255。
但直接在 word 文档中,所有 500 个字符都显示为合并字段。
问题:
如何从 VBA 的合并字段中获取超过 255 个字符?