簡體   English   中英

如何在MailMerge字段名稱中使用句點?

[英]How can I use periods in MailMerge Field Names?

我有一個合並字段名稱列表和一個Word文檔一起傳遞到我的應用程序中。 合並字段包括句點和下划線,格式為“此處,示例,合並字段”。 這些分隔符是必需的-字符可以更改,但不能完全刪除。

這些合並字段中的幾個包含在為文檔創建的數據源中。 數據源中沒有用於合並字段名稱的數據保存-合並本身發生在流程的其他位置。

我將文檔附加到數據源,如下所示:

WordApplication.MailMerge.OpenDataSource(DataFilePath);

這會根據需要將“合並字段”加載到菜單中,但是所有時間段都已消失。 我現在有了“ HereIsAnExampleMerge_Field”,這會在我的應用程序的其他地方引起問題。

如何防止Word刪除這些字符?

我認為您不能,因為AFAIK合並字段名稱已修改為有效的書簽名稱,但存在某些限制

(請參見例如Microsoft Word中的書簽名稱有什么限制?以進行討論,除非在這種情況下,我認為Word會在首字母“ _”之前插入“ M”。此外,超過40個字符的名稱會被修飾以產生唯一的名稱。)

因此,該做什么實際上取決於您面臨的問題。

您可以從ActiveDocument.MailMerge.DataSource.DataFields或.FieldNames中檢索Word實際使用的字段名稱(即,其錯誤的名稱)。 盡管Word有時會重新排列要在“編輯收件人”對話框中顯示的字段(例如,它按一定的順序對它認為是地址字段名稱的字段名稱進行排序),但它們的順序與數據源中字段的順序相同。 這樣一來,您便可以將其字段名稱與原始字段進行匹配。

另外,如果您的代碼需要在郵件合並主文檔中插入{MERGEFIELD}字段並且知道數據源中字段的順序,則可以使用字段編號(對於Word等檢索到的第一個字段,請使用1)。合並1}。 但是要提防,因為我從未見過Microsoft在任何地方記錄過該功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM