风骚老妈
日本av最漂亮演员
你的位置:风骚老妈 > 日本av最漂亮演员 > www.淫淫网.com Excel VBA【案例】送货单:下拉列表录入打印保存一条龙/VBA操作超等表

www.淫淫网.com Excel VBA【案例】送货单:下拉列表录入打印保存一条龙/VBA操作超等表

发布日期:2024-08-03 22:11    点击次数:176

www.淫淫网.com Excel VBA【案例】送货单:下拉列表录入打印保存一条龙/VBA操作超等表

内容撮要www.淫淫网.com

超等表送货单全球好,我是冷水沏茶,昨天看到一个乞助,是对于送货单的:

[乞助] 跨使命表按要求组合索要最新数据。

请问大佬,把柄客户称呼和家具型号从数据库汇总表自动索要临了一次销售价钱?

他的数据表是这样的:

送货单表,用于录入送货清单:

图片www.淫淫网.com

酒色网汇总表,用于保存送货明细:

图片

还有“制品编码”表,“客户尊府”表,咱们就不贴了。今天的要点不是去搞定他的需求,而是我有另外的办法:再行盘算推算这张表。前两天咱们共享的案例【多列下拉列表】中的行径,不错用于录入商品编码、称呼等信息。另外,前期咱们共享的小手段【自动更新序号】,有一又友留言说:尽量用超等表搞定序号问题。我看这3张表“汇总表”、“制品编码”、“客户尊府”,齐是不错改成用超等表的,况兼,有两张有“序号“字段,我就准备再行盘算推算一下,趁机商榷一下在VBA中奈何来操作超等表:汇总表,在“表盘算推算”菜单里,把表称呼改为“BillList”:

图片

制品编码表,在“表盘算推算”菜单里,把表称呼改为“Inventory”:

图片

这里有一个字段“序号”,咱们在A2单位格输入公式,在插入删除表行时,序号会自动更新。

=ROW()-1
客户尊府表,一样的更名为“Customer”,序号字段建造公式:

图片

咱们把这个表的样式作念了一个更正,在启动-->套用表格面目中取舍:

图片

回到第一张表“送货单”:在B4单位格,输入客户称呼,不错用TextBox+ListBox来作念一个下拉列表,我原本亦然这样作念的,自后猜度咱们既然使用了超等表,咱们就界说称呼,再用数据考据吧。咱们界说一个Name,“客户称呼”:
=Customer[客户称呼]

图片

通过这种形状界说的称呼,它是动态彭胀的,删除、加多纪录齐莫得问题。接着,咱们就在送货单B4单位格建造数据考据:

图片

这们咱们就不错下拉取舍输入啦。临了,咱们在送货单表上添加一个文本框(TextBox1)、一个列表框(ListBox1)、一个敕令按钮(保存)。罢了功能:1、取舍输入客户称呼,自动更新送货单表跟客户尊府关连的其他信息,同期更新“票据编号”,也等于活水号。2、点击家具编码或家具称呼栏,表露商品列表,不错输入重要字(编码或称呼齐不错)筛选,点击商品列表纪录,自动填入使命表关连栏目。3、数目、单价修改,自动更新规画金额(无谓公式)。4、点保存,将纪录更新到“汇总表”,如若勾选了“立即打印”复选框,则同期打印送货单。5、保存时,查验活水号“票据编号”,如若已存在一样的编号,则退出。6、保存后,清空送货单商品信息,活水号更新+1。

基本想路:

1、客户信息自动更新,咱们把客户尊府装入数组,通过轮回匹配到面前输入的客户称呼,得到关连信息填入送货单。由于咱们使用了超等表,咱们在对它进行操作的时候,与无边的表有所不同。超等表亦然一个对象,咱们通过给它界说的称呼来援用它:
Set ws = ThisWorkbook.Sheets("客户尊府")Set tbl = ws.ListObjects("Customer")arrCustomer = tbl.DataBodyRange
2、商品明细录入,咱们通过文本框与列表框汇集,本色下拉取舍、筛摘记入。咱们把“制品编码”表的数据装入数组,再装入ListBox。3、自动规画商品金额,不错用公式:数目*单价,公式很粗拙,但也容易出错,误删除什么的;这里咱们选拔使命表Change事件,当单价或数目发生更正时,规画一下金额。4、票据编号,需要更新票据编号时,咱们选拔SQL查询汇总表中最大票据号。把柄编码轨则“HS"+YYYYMMDD+###,即首位2个字母加上8位年月日再加上3位序号,咱们索要出其中的年月日并与今天的年月日进行对比,如若相易,咱们把票据编号+1,如若不同,票据编号的尾号为001,暗示新的一天再行编号。5、保存时,查验票据编号,咱们亦然选拔SQL查询面前的票据号是否已存在。6、更新数据到“汇总表”,咱们哄骗超等表对象的ListRows.Add行径:
Set wsTarget = ThisWorkbook.Sheets("汇总表")Set tbl = wsTarget.ListObjects("BillList")For i = 8 To 13    If ws.Cells(i, 2) <> "" Then        Set newRow = tbl.ListRows.Add        newRow.Range(1, 1) = ws.Range("B4")        newRow.Range(1, 2) = ws.Range("H6")        newRow.Range(1, 3) = ws.Range("H4")        For j = 8 To 1 Step -1            newRow.Range(1, j + 3).Value = ws.Cells(i, j).Value            ws.Cells(i, j).Value = ""        Next    End IfNext
它自动就添加到临了一瞥,不需要咱们去得到临了一瞥的行号来写入数据了。演示恶果:

图片

完好代码见第二条推文。跋文:1、咱们发现,送货单第一列是“订单编号”,咱们莫得填,莫得开始。本色上,如若有“订单”,那么,就应该有商品明细信息,咱们就不错把柄订单,径直生成送货单,不需要去东说念主工输入。2、如若莫得电子档的订单,那就莫得方针了。那么,咱们不错把这个送货单看作订单。3、商品收发存,是一个很大的技俩,送货单仅仅其中一环。如若重新启动咱们齐有明细的电子纪录,咱们在后续就不错进行调用,免却重迭工作。4、这个案例还有彭胀空间,比如送货单补打印、查询、生成客户对账单、把柄订单明细生成送货单之类的,由于时代与元气心灵的关系,暂时不搞了(如若有定制需求的,不错考虑)。好,今天就到这,咱们下期重逢。~~~~~~End~~~~~~ 本站仅提供存储服务,扫数内容均由用户发布,如发现存害或侵权内容,请点击举报。

Powered by 风骚老妈 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群 © 2013-2024 版权所有