在我的電腦上報(bào)錯(cuò)了,試了好久
少個(gè)引號(hào)!我加上去可以了:

不不不,加上去也是錯(cuò)的。
原文不改是對(duì)的,換了一個(gè)電腦成功了。
我原來的電腦不知道為什么,會(huì)報(bào)錯(cuò)。
原文

https://mp.weixin.qq.com/s?__biz=MzkyNjMwNjQyOA==&mid=2247485065&idx=1&sn=acc65094b9570c680a34fe66ebad4590&chksm=c2381f9af54f968c0caafb01032e6296bef47c6db2776355736a2adc90cdf6fe1e22ec095f23&mpshare=1&scene=1&srcid=0408NBkKNxXSY7bUKbdMtKdG&sharer_sharetime=1649420601793&sharer_shareid=6640ea4c5969f1872d3c29f3eaf95864#rd
郵件合并-批量生成發(fā)貨單(多行記錄)
xx小餅干?Excel技能收藏夾?2022-02-22 00:00
收錄于話題
#郵件合并7個(gè)
#批量工具13個(gè)
#Excel技巧11個(gè)
? 訴求:根據(jù)數(shù)據(jù)源,按照指定模板批量生成發(fā)貨單??
例題:如下數(shù)據(jù)源為訂單列表,其中一個(gè)訂單號(hào)中會(huì)有多條商品明細(xì),現(xiàn)需要根據(jù)訂單號(hào)將商品明細(xì)填充到如下圖Word所設(shè)定好的模板中以生成發(fā)貨單。
由此,我們需要做的是一對(duì)多的郵件合并,單條郵件合并可見前文鏈接:
單條記錄的郵件合并
公眾號(hào):Excel技能收藏夾郵件合并-VBA批量生成出貨單(單條記錄)
??訂單列表數(shù)據(jù)源??
??效果圖
效果描述一:每個(gè)訂單號(hào)生成一份發(fā)貨單
效果描述二:一個(gè)訂單號(hào)的多條記錄都同時(shí)顯示在一份發(fā)貨單中
效果描述三:當(dāng)商品明細(xì)超過模板明細(xì)最大行數(shù)時(shí)將自動(dòng)換頁(yè)填寫,小于模板明細(xì)行數(shù)時(shí)則顯示為空白
??步驟? ???
Step?1:?準(zhǔn)備訂單列表?[1.1-1.2]
1.1??在數(shù)據(jù)源后面插入一列輔助列,在輔助列輸入公式=IF(A2=A3,1,0)
公式作用:用來劃分訂單號(hào)的,即,每當(dāng)輔助列值為0時(shí),就表示是一個(gè)訂單號(hào)與另一個(gè)訂單號(hào)的界線。
1.2??在數(shù)據(jù)源后面再插入一列輔助列,如下G列,輸入公式=COUNTIF(A:A,A2)
公式作用:用來判斷同一個(gè)訂單號(hào)下最大的明細(xì)行數(shù),以此來初步設(shè)word模板中的商品明細(xì)行數(shù)。
本案例中,計(jì)算出最大明細(xì)行數(shù)為6,則Word模板下的商品明細(xì)設(shè)置為6行。
當(dāng)商品明細(xì)行數(shù)超過模板設(shè)置的最大行數(shù)時(shí)候,將自動(dòng)轉(zhuǎn)入下一頁(yè)顯示。
Step 2:?準(zhǔn)備Word發(fā)貨單模板???
Step 3:?進(jìn)行郵件合并 [3.1-3.4]??
3.1??郵件?>?選擇收件人?>?使用現(xiàn)有列表 > 在彈框中找到訂單列表數(shù)據(jù)源 ,點(diǎn)擊確定
3.2??郵件?>?插入合并域?:這里模板中的明細(xì)先只在第一行插入合并域名
3.3??模板中的明細(xì)在第二行時(shí)候,進(jìn)行如下操作(a~h):
a.?按Alt+F9?進(jìn)入域代碼編輯狀態(tài)
b.?光標(biāo)定位到發(fā)貨單明細(xì)的第二行第一個(gè)單元格,按Ctrl+F9,就會(huì)看到一對(duì)花括號(hào){}。注意,這里的花括號(hào)不是手動(dòng)敲打的!
c.?光標(biāo)定位到花括號(hào){}里面,鍵入set a "",這里注意是set+空格+a+空格+英文狀態(tài)下的雙引號(hào)""。這個(gè)set是將輔助列的值設(shè)為變量a
d.?光標(biāo)定位到雙引號(hào)""中,選擇郵件選項(xiàng)卡下插入合并域中的“輔助”列字段
e.?光標(biāo)定位到最外層花括號(hào)的最外面,接著,在郵件選項(xiàng)卡下,找到[規(guī)則],在[規(guī)則]中單擊選擇[下一條記錄條件]
單擊[下一條記錄條件]后,會(huì)出現(xiàn)窗口,如下鍵入信息后點(diǎn)擊確定。
這時(shí)候,我們的第2行后面就會(huì)出現(xiàn)一串新的代碼如下②:
這條代碼的作用是用來判斷當(dāng)輔助列的值為1時(shí)候,就顯示下一條記錄。
f.?光標(biāo)定位到上一步最后的花括號(hào)外面,繼續(xù)鍵入域代碼:按Ctrl+F9,在出現(xiàn)的花括號(hào)中輸入If a=1+插入合并域字段“商品”+""(如下)
這個(gè)if是判斷當(dāng)變量為1,即是同一個(gè)訂單號(hào)時(shí),則顯示商品名字,否則顯示空值
g.?以上就設(shè)置好第二行第一個(gè)單元格的域代碼,接著,我們?cè)诘诙衅渌麊卧裰休斎胗虼a示例如下:
h.?我們這里設(shè)置的模板明細(xì)行數(shù)為6行,所以,從第3行到第6行,我們只需要將第2行的域代碼復(fù)制進(jìn)去即可。
3.4??最后,點(diǎn)擊郵件選項(xiàng)卡下 > 完成并合并?>?編輯單個(gè)文檔?>?全部 > 確定。就搞定啦!
最后,按Alt+F9可以退出域代碼編輯狀態(tài)。
建議做了一次之后,將這個(gè)word模板保存,這樣,下次遇到類似情況可以稍作改動(dòng)來套用哦~
以上,就是今天的小技能,怎么樣,學(xué)廢了嗎~~