例題描述
現(xiàn)有每日商品進(jìn)貨登記表—每日入庫(kù)明細(xì).xlsx,如下圖所示:

另還有每日商品發(fā)貨登記表—每日發(fā)貨明細(xì).xlsx,包括所有商品,只有第一條有日期,其余條日期相同,如下圖所示:

現(xiàn)需要按商品款式將每日入庫(kù)及發(fā)貨數(shù)量保存到“出入庫(kù)匯總.xlsx”文件的對(duì)應(yīng)sheet(商品款式就是sheet名)中,并計(jì)算出當(dāng)日結(jié)存,如下圖所示:

實(shí)現(xiàn)步驟
1、? 運(yùn)行集算器
可去潤(rùn)乾官網(wǎng)下載職場(chǎng)版,同時(shí)下載一個(gè)免費(fèi)授權(quán)就夠了,首次運(yùn)行時(shí)會(huì)提示加載。
2、? 編寫(xiě)腳本:

把代碼列出來(lái)看得清楚點(diǎn):

A1定義dir變量指定Excel數(shù)據(jù)文件所在的目錄
A2定義出入庫(kù)匯總.xlsx文件
B2打開(kāi)并讀入出入庫(kù)匯總數(shù)據(jù),形成集算器中的Excel對(duì)象
A3讀入每日發(fā)貨明細(xì).xlsx中的數(shù)據(jù)
B3選出每日發(fā)貨明細(xì)中規(guī)格及品名不為空的記錄
A4將每日發(fā)貨明細(xì)中每條記錄的日期設(shè)置成第1條記錄的日期
B4在每日發(fā)貨明細(xì)中新增一列:入庫(kù)數(shù)量
A5讀入每日入庫(kù)明細(xì).xlsx中的數(shù)據(jù)
B5選出每日入庫(kù)明細(xì)中日期不為空的記錄
A6對(duì)B5選出的入庫(kù)明細(xì)記錄進(jìn)行循環(huán)處理
B6在B4算出的發(fā)貨明細(xì)中選出與當(dāng)前循環(huán)相同產(chǎn)品的記錄,并將當(dāng)前的入庫(kù)存數(shù)量設(shè)置成它的入庫(kù)數(shù)量
A7從B4中選出入庫(kù)數(shù)量或發(fā)貨數(shù)量至少有一個(gè)不為空的記錄
A8對(duì)A7中的所有記錄進(jìn)行循環(huán)處理
B8從出入庫(kù)匯總Excel對(duì)象中讀出當(dāng)前循環(huán)商品對(duì)應(yīng)的歷史出入庫(kù)記錄,從第3行開(kāi)始,選項(xiàng)@t表示首行是列名
B9計(jì)算當(dāng)前循環(huán)商品的結(jié)存=歷史記錄最后一條的結(jié)存+入庫(kù)數(shù)量-發(fā)貨數(shù)量
B10把當(dāng)前循環(huán)商品的當(dāng)日出入庫(kù)記錄插入到歷史記錄的最后
B11把當(dāng)前循環(huán)商品的最后1條記錄(即當(dāng)日的)追加到出入庫(kù)匯總Excel對(duì)象的對(duì)應(yīng)sheet中,使用選項(xiàng)@a表示追加寫(xiě)入
A12將處理完畢的Excel對(duì)象再保存到出入庫(kù)匯總.xlsx文件中
3、? 按F9運(yùn)行這段程序,打開(kāi)出入庫(kù)匯總.xlsx來(lái)看看。



4、? 第6行還可以用JOIN運(yùn)算實(shí)現(xiàn),只要一句了
A6:=A4.join(規(guī)格及品名,B5:款式,入庫(kù)存數(shù)量)
把B4和B6清空,完整代碼:

A6按A4每日發(fā)貨明細(xì)中的規(guī)格及品名與B5每日入庫(kù)明細(xì)中的款式進(jìn)行連接,拼接上入庫(kù)存數(shù)量字段
【附件】kucun.zip