例题描述
现有每日商品进货登记表—每日入库明细.xlsx,如下图所示:
另还有每日商品发货登记表—每日发货明细.xlsx,包括所有商品,只有第一条有日期,其余条日期相同,如下图所示:
现需要按商品款式将每日入库及发货数量保存到“出入库汇总.xlsx”文件的对应sheet(商品款式就是sheet名)中,并计算出当日结存,如下图所示:
实现步骤
1、 运行集算器
可去润乾官网下载职场版,同时下载一个免费授权就够了,首次运行时会提示加载。
2、 编写脚本:
把代码列出来看得清楚点:
A1定义dir变量指定Excel数据文件所在的目录
A2定义出入库汇总.xlsx文件
B2打开并读入出入库汇总数据,形成集算器中的Excel对象
A3读入每日发货明细.xlsx中的数据
B3选出每日发货明细中规格及品名不为空的记录
A4将每日发货明细中每条记录的日期设置成第1条记录的日期
B4在每日发货明细中新增一列:入库数量
A5读入每日入库明细.xlsx中的数据
B5选出每日入库明细中日期不为空的记录
A6对B5选出的入库明细记录进行循环处理
B6在B4算出的发货明细中选出与当前循环相同产品的记录,并将当前的入库存数量设置成它的入库数量
A7从B4中选出入库数量或发货数量至少有一个不为空的记录
A8对A7中的所有记录进行循环处理
B8从出入库汇总Excel对象中读出当前循环商品对应的历史出入库记录,从第3行开始,选项@t表示首行是列名
B9计算当前循环商品的结存=历史记录最后一条的结存+入库数量-发货数量
B10把当前循环商品的当日出入库记录插入到历史记录的最后
B11把当前循环商品的最后1条记录(即当日的)追加到出入库汇总Excel对象的对应sheet中,使用选项@a表示追加写入
A12将处理完毕的Excel对象再保存到出入库汇总.xlsx文件中
3、 按F9运行这段程序,打开出入库汇总.xlsx来看看。
4、 第6行还可以用JOIN运算实现,只要一句了
A6:=A4.join(规格及品名,B5:款式,入库存数量)
把B4和B6清空,完整代码:
A6按A4每日发货明细中的规格及品名与B5每日入库明细中的款式进行连接,拼接上入库存数量字段
【附件】kucun.zip