ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 13928|回复: 41

[求助] 求VBA程序,通过送货单号自动提取内容及汇总送货信息

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-4-23 11:41 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
求助:本人有一份文档,包含三个表:《通用打印》、《订单表》、《送货汇总表》,现希望高手帮助,编写VBA程序,达到以下要求:
1、《通用打印》中“送货单号”能自动编号,格式为:JL+年+月+三位流水号
2、在《订单表》中输入《通用打印》中的“送货单号”,《通用打印》能自动从《订单表》中提取对应的以下信息。
客户:xx
送货日期:2014-4-23

订单号码
物料编号
品名/规格
颜色
订单数量
送货数量
单位
备注
PO1404180014
41801000599
焊接组件325*103.2
粗胚
298
20
PCS
T01149001A
PO1404180031
41801020599
焊接组件232*78
粗胚
130
20
PCS
F01149001C
3、在打印《通用打印》后,能将《通用打印》内容自动汇总到《送货汇总表》。

以上需求本人能分开实现,但是不能在一个文档中运行,望大家帮助小女子,以解决工作中的问题。
在此先谢谢大家了!

订单表2014.zip

22.01 KB, 下载次数: 93

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-4-23 11:42 | 显示全部楼层
本帖最后由 tds 于 2014-4-23 11:47 编辑

自已先顶一下。本人用函数能达成效果,但是函数运算时对电脑要求高,还有时因要对订单表进行删除,增加等操作,会引起函数的错误,希望各位大圣多多关注我的这份帖子。

TA的精华主题

TA的得分主题

发表于 2014-4-23 12:30 | 显示全部楼层
“分开实现,但是不能在一个文档中运行”
是什么意思?

TA的精华主题

TA的得分主题

发表于 2014-4-23 12:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
在《订单表》中输入《通用打印》中的“送货单号”,说反了吧

TA的精华主题

TA的得分主题

发表于 2014-4-23 12:45 | 显示全部楼层
以上需求本人能分开实现,但是不能在一个文档中运行,那么能分开运行的宏在哪呢?

TA的精华主题

TA的得分主题

发表于 2014-4-23 13:09 | 显示全部楼层
tds 发表于 2014-4-23 11:42
自已先顶一下。本人用函数能达成效果,但是函数运算时对电脑要求高,还有时因要对订单表进行删除,增加等操 ...

参考
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cnn, sql$
    Set cnn = CreateObject("adodb.connection")
   cnn.Open "Provider=Microsoft.jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & ThisWorkbook.FullName
  sql = " select """",采购单号,嘉利物料编号,规格,颜色,订单数量,送货数,"""",备注 from [订单表$] where 送货单号='" & [h3] & "' "
   Range("A7:i16").ClearContents
   Range("a7").CopyFromRecordset cnn.Execute(sql)
   cnn.Close
   Set cnn = Nothing
   For X = 7 To 16
   If Cells(X, 2) <> "" Then
   Cells(X, 1) = X - 6
   Cells(X, 8) = "PCS"
   End If
   Next X
End Sub

TA的精华主题

TA的得分主题

发表于 2014-4-23 13:10 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-4-23 13:11 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
题目没看明白。。。不在一个文档中运行是什么意思?

你是要把这三个表拆分为三个工作薄吗?

TA的精华主题

TA的得分主题

发表于 2014-4-23 13:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
首先你的逻辑有问题,流水号码没有到汇总表中,去哪里提取客户名称和送货日期?
你的要求都不难实现!!
关于客户还有发货日期用index+match函数直接搞定

Sub 自动打印汇总()
If Cells(3, 8) = "" Then
Cells(3, 8).Value = "JL" & Format(Now(), "yyyymm") & "001"
Else
Cells(3, 8).Value = "JL" & Format(Now(), "yyyymm") & Format(Right(Cells(3, 8).Value, 1) + 1, "000")
End If
Cells(3, 8).Value = Cells(3, 8).Value
For i = 7 To Sheets("通用打印").Range("A65536").End(3).Row
j = Sheets("送货汇总表").Range("a65536").End(3).Row + 1
Sheets("送货汇总表").Cells(j, 1) = Sheets("通用打印").Cells(3, 2).Value
Sheets("送货汇总表").Cells(j, 2) = Sheets("通用打印").Cells(3, 8).Value
Sheets("送货汇总表").Cells(j, 3) = Sheets("通用打印").Cells(4, 8).Value
Sheets("送货汇总表").Cells(j, 4) = Sheets("通用打印").Cells(i, 1).Value
Sheets("送货汇总表").Cells(j, 5) = Sheets("通用打印").Cells(i, 2).Value
Sheets("送货汇总表").Cells(j, 6) = Sheets("通用打印").Cells(i, 3).Value
Sheets("送货汇总表").Cells(j, 7) = Sheets("通用打印").Cells(i, 4).Value
Sheets("送货汇总表").Cells(j, 8) = Sheets("通用打印").Cells(i, 5).Value
Sheets("送货汇总表").Cells(j, 9) = Sheets("通用打印").Cells(i, 6).Value
Sheets("送货汇总表").Cells(j, 10) = Sheets("通用打印").Cells(i, 7).Value
Sheets("送货汇总表").Cells(j, 11) = Sheets("通用打印").Cells(i, 8).Value
Sheets("送货汇总表").Cells(j, 12) = Sheets("通用打印").Cells(i, 9).Value
Next i
Sheets("定单表").Range("A3").Select
    Application.ActivePrinter = "HP LaserJet P3005 PCL 6 在 Ne01:" '关于打印自己录制一个宏,具体看自己的打印机了
ActiveWindow.SelectedSheets.PrintOut
Range("A7:I100").ClearContents
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-4-23 13:28 | 显示全部楼层
excel333 发表于 2014-4-23 12:30
“分开实现,但是不能在一个文档中运行”
是什么意思?

就是一个需求一个需求单独运行,可以实现,3个需求一起来,程序就会报错,用不了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 14:24 , Processed in 0.049586 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表