ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 跨表对比的检查复制功能实现

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-5-11 23:18 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 yniu88 于 2013-5-12 20:32 编辑

附件中两个文件:说明:
1、“订单汇总表”是数据源文件。“订单汇总表-分拆”是放在同一个目录下的根据前一个文件进行分拆的文件。
2、由于目前是手动分拆产品物料,所以需要随时对比订单汇总表里面是否有新订单变化,有变化就将该行新订单信息(A-F列增加到分拆表上)。具体一点说:


需求:
根据订单汇总表文件A列的订单分序号,逐一对比“订单汇总表-分拆”里面的A列数据,如果订单分序号已经在订单汇总表-分拆文件的对应A列出现,则默认已经完成分拆。
如果没有,进一步判断未完成数量F列是否为零,如果为零则跳过,比较下一条数据。如果不为零,则说明分拆表存在遗漏,那么将该遗漏的那条数据复制到最下面空白行位置。如果存在重复的订单分序号(意味着前面分拆工作出现重复,则再最下面空白一行出现一条错误提示信息)。
入门新丁,求各位前辈指点。
谢谢先!

桌面.rar (3.74 KB, 下载次数: 18)



TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-12 09:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
麻烦各位指点一下思路。谢谢了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-12 15:29 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-5-12 20:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
不知道是不是这个意思。试试看吧。
  1. Sub text()
  2.     Dim wb As Workbook
  3.     Dim i As Integer, rng As Range, d, arr, brr
  4.     Application.DisplayAlerts = False
  5.     Application.ScreenUpdating = False
  6.     Set d = CreateObject("scripting.dictionary")
  7.     Set wb = Workbooks.Open(ThisWorkbook.Path & "\订单汇总表-分拆.xls")
  8.     arr = wb.Sheets(1).Range("a1").CurrentRegion
  9.     brr = Sheet1.Range("a1").CurrentRegion
  10.     If UBound(arr) > 1 Then
  11.         For i = 2 To UBound(arr)
  12.             d(arr(i, 1)) = ""
  13.         Next
  14.     End If
  15.     endrow = Sheet1.[a65536].End(xlUp).Row
  16.     For i = 2 To UBound(brr)
  17.         endrow1 = wb.Sheets(1).Range("a65536").End(xlUp).Row + 1
  18.         If d.exists(brr(i, 1)) = False Then
  19.             If brr(i, 6) <> 0 Then
  20.                 Sheet1.Rows(i).Copy wb.Sheets(1).Cells(endrow1, 1)
  21.             End If
  22.         End If
  23.     Next
  24.     wb.Close True
  25.     Set d = Nothing
  26.     Application.ScreenUpdating = True
  27.     Application.DisplayAlerts = True
  28. End Sub

复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-12 20:41 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-5-12 22:52 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2015-11-18 17:11 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-26 21:22 , Processed in 0.033811 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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