打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Excel之VBA常用功能应用篇:配送管理应用

Excel不是万能的,但办公应用离开它是万万不能的。

这就是说目前的办公方式早已经不是笔墨纸砚来记账了,数字化办公加快了行政办公效率,如果还有人在一堆纸里写写划划,那么不是特殊行业,就是对这个世界认识不清。

配送是一个动态变化过程,由于其数据有动态行为,所以使用Excel编程的时候,会用到很多动态检索功能,以保证当前数据为最新。

所以,在编程本应用的时候也浪费了不少时间,来处理动态数据的静态统计。

下面看一下是如何实现配送管理过程的。

下图为操作主页,分别设置了一个订单录入和一个生成配送单按钮。

工作表内容为订单记录表,通过下图表单可以实现订单的录入和新建。

下图为生成配送单操作窗体,可以明显看到这里有很多按钮,其大部分功能在这个窗体中实现。

由于其执行过程并不能看到其运行,所以这里简单介绍一下有哪些功能。

通过日期下拉框可以选择月份和日期,一般情况下会自动默认当日的月份和日期。

第一个按钮,生成今天配送单,很好理解,单击它会生成当天要配送的记录,其生成规则是,依据订单来进行的。

比如,某个用户订了300件的送单量,那么就会在这一数据未送完时自动新建,如果已经送完了,那么就不新建当日的送单,当然了,还有很多要判断的条件进行设置。

下图为生成的订单记录:

第二个按钮,重置今天配送单,假如当天生成的订单错误,或是某些客户当天不需要配送,可以重新生成订单号,生成之前有一个选择,可以取消某些订单不生成。

如不生成订单,自然也不会在记录中进行登记。

这部分操作有些繁杂,先把已经生成的订单删除后,再次生成当日订单。

第三个按钮,月配送统计,很简单就是统计某个月的订单记录,包括数量,金额,付款,利润等数据。

第四个按钮,日配统计,也就某一天的配送情况。

第五个按钮,查看统计结果,这个功能实现查看统计结果,实际上每次统计之后会自动刷新窗体表内容。

第六个按钮,打印统计结果,很明显就是实现打印输出,可以把统计结果打印出来,无论是什么统计都可以使用这个功能实现。

配送管理,实际上还是有一些可以深入研究的一个应用过程,通过VBA处理之后,可以方便地生成当天要配送的订单,然后下发给配送员。

如果,生成二维码,就更加方便了。

当然了,也不是不可能,只不过需要一些时间来进行编码,在以前文章里有相关内容与讲解,这里不做过多介绍了。

代码

Private Sub 生成配送记录()

'生成日配送单

On Error Resume Next

Application.ScreenUpdating = False

Dim s As Worksheet

Set s = ThisWorkbook.Worksheets(xPsheet)

If s Is Nothing Then Exit Sub

Dim xArr, xi As Long, ir As Long, ic As Long

Dim cArr, ci As Long

Dim eArr, ei As Long

Dim NowDay As Date

NowDay = VBA.Format(VBA.Date, "yyyy/mm/dd")

xArr = s.Range("A2").CurrentRegion

If CloseModes = 0 Then Exit Sub

If dArr(1) = "" Then Exit Sub

ir = UBound(xArr, 1)

ic = UBound(xArr, 2)

If VBA.Err.Number <> 0 Then Exit Sub

ReDim eArr(LBound(xArr, 1) To ir)

For ei = LBound(xArr, 1) + 1 To ir

eArr(ei) = xArr(ei, 2)

Next ei

SumxCount "业主订单记录", 11 '计算刷新已送数量

Dim diArr As Variant, di As Long

For xi = 2 To ir

For di = LBound(dArr) To UBound(dArr) '判断订单 是否不进行送货

diArr = VBA.Filter(eArr, dArr(di)) '返回查询订单号数组

If diArr(0) <> "" Then

If xArr(xi, 2) = diArr(0) Then

If VBA.DateDiff("d", xArr(xi, 3), NowDay) >= 0 Then '下单日期正确

If xArr(xi, 8) > xArr(xi, 11) Then '订购数量大于已送数量

'收集数组值

ReDim cArr(1 To ic)

For ci = 1 To ic

cArr(ci) = xArr(xi, ci)

Next ci

cArr(1) = "=row()-2"

cArr(3) = VBA.Format(VBA.Date, "yyyy/mm/dd")

cArr(11) = "=G3" '已送数

cArr(12) = "=G3-K3" '未送

cArr(13) = "=I3*K3" '销售额

cArr(14) = GetSale '应付款单价

cArr(15) = "=K3*N3" '应付款

cArr(16) = "=M3-O3" '利润

'执行新建订单

SaveXsheetList cArr

Erase cArr

End If

End If

End If

End If

Next di

Next xi

Erase xArr

Erase eArr

Erase dArr

Erase diArr

Set s = Nothing

ShowListView

Application.ScreenUpdating = True

End Sub

订单管理过程就写这么多,实际应用当中还有许多要修改的地方,在此只是抛一块砖,希望有些需求的你,可以获得一些启发。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VBA编程,如何用代码进行整列数据查询,源代码复制就可使用
Excel之VBA常用功能应用篇:VBA冒泡排序
如何将多个工作簿的内容合并到一个工作簿中?
VBA控件引用如何注册,这是一个很实用的工具,不要错过
与雕塑合影太枯燥?看完这些照片保证你服
VBA简单入门系列
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服