簡體   English   中英

MERGEFIELD 的 MS Word MAILMERGE 自動編號

[英]MS Word MAILMERGE autonumbering for MERGEFIELD

我剛剛學習了如何在 MS Word 中使用 MAILMERGE。 我想列出我的 MERGEFIELD 使用字母順序,我的代碼是這樣的:

{ SEQ list \* alphabetic }. { MERGEFIELD item1 }
{ SEQ list \* alphabetic }. { MERGEFIELD item2 }
{ SEQ list \* alphabetic }. { MERGEFIELD item3 }
{ SEQ list \* alphabetic }. { MERGEFIELD item4 }
{ SEQ list \* alphabetic }. { MERGEFIELD item5 }

上面代碼的結果是:

a.  duck
b.  dog
c.  bird
d.  cat
e.  pig

當一個或多個 MERGEFIELD 值為空時,我會遇到問題。 例如,如果 { MERGEFIELD item3 } 為空,它將生成如下列表:

a.  duck
b.  dog
c.  
d.  cat
e.  pig

我想要的是這樣的:

a.  duck
b.  dog
c.  car
d.  pig

如果是Windows Word 2003 或更高版本(或者可能是 Word XP,我忘記了),最簡單的方法可能是使用以下嵌套域代碼並依靠 Word 來“抑制空行”(這是其默認設置)

{ MERGEFIELD item1 \b "{ SEQ { IF { MERGEFIELD item1 } = "" nolist list } \*alphabetic }. " }
{ MERGEFIELD item2 \b "{ SEQ { IF { MERGEFIELD item2 } = "" nolist list } \*alphabetic }. " }
{ MERGEFIELD item3 \b "{ SEQ { IF { MERGEFIELD item3 } = "" nolist list } \*alphabetic }. " }
{ MERGEFIELD item4 \b "{ SEQ { IF { MERGEFIELD item4 } = "" nolist list } \*alphabetic }. " }
{ MERGEFIELD item5 \b "{ SEQ { IF { MERGEFIELD item5 } = "" nolist list } \*alphabetic }. " }

(所有 { } 必須是您可以使用 ctrl-F9 在 Windows Word 中插入的特殊字段代碼大括號對。此外,當您預覽時,空行仍會出現,並帶有“..”開始,但當您實際執行合並時它們應該消失。)

如果您使用的是 Windows Word XP/2000 或更早版本,或任何版本的 Mac Word,則不支持 \\b 標志。 因此,您必須使用 IF 字段來生成空白/非空白案例的結果。 問題是 IF 字段內的 SE 字段通常會評估是否輸出結果文本,因此您最終會在序列中出現間隙。 即使試圖讓 Word 使用兩個不同的序列(如上的“list”和“nolist”)也無法如您所願。 但是,您可以嘗試另一種方法(它應該適用於所有版本的 Word):

{ IF { MERGEFIELD item1 } <> "" "{ SET list { =list+1 } }{ list \*alphabetic }. { MERGEFIELD item1 }
" }{ IF { MERGEFIELD item2 } <> "" "{ SET list { =list+1 } }{ list \*alphabetic }. { MERGEFIELD item2 }
" }{ IF { MERGEFIELD item3 } <> "" "{ SET list { =list+1 } }{ list \*alphabetic }. { MERGEFIELD item3 }
" }{ IF { MERGEFIELD item4 } <> "" "{ SET list { =list+1 } }{ list \*alphabetic }. { MERGEFIELD item4 }
" }{ IF { MERGEFIELD item5 } <> "" "{ SET list { =list+1 } }{ list \*alphabetic }. { MERGEFIELD item5 }
" }

請注意,在這種情況下,我們不能依靠 Word 來抑制由空 IF 字段結果產生的空行,因此我們在 MERGEFIELD 結果不是空白時在 IF 字段插入的文本末尾放置了一個段落標記。

任何一種方法都應該擴展到您需要的盡可能多的項目,但請注意 *alphabetic 產生的“字母序列”不是

AB . . z aa ab 。 . 啊啊啊啊啊啊啊啊 . bz

正如你所料,但是

AB . . z aa bb 。 . zz aaa bbb 。 .

.

如果你真的想要第一個更熟悉的序列,你需要做更多的事情。 (我以前做過這個,但可能會重新研究它)。

但是,如果您想更輕松地擴展項目計數,如果字段繼續編號為 item6、item7 等,您可以修改字段編碼,以便您只需粘貼您的副本數需要。 對於使用 SEQ 的編碼,您可以使用

{ MERGEFIELD "item{ SEQ i }" \b "{ SEQ { IF MERGEFIELD "item{ SEQ i \c }" } = "" nolist list } \*alphabetic }. " }

對於使用 SET 的編碼,您可以使用

{ IF { MERGEFIELD "item{ SEQ i}" } <> "" "{ SET list { =list+1 } }{ list \*alphabetic }. { MERGEFIELD "item{ SEQ i \c }" }
" }

暫無
暫無

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

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