示例:

如图所示,该工作簿中有两个来自不同数据源的材料表,这两个表中的数据可能不同。如何使用VBA比较两张表的编号与数量,并建立一张对照表,分别列出两张表的不同:编号同时存在但数量不同;编号在其中一张表中存在,而另一张表中不存在(标注哪张表不存在)?

示例数据表

表1

编号 名称 规格 单位 数量
370005 钕铁硼 N-35H 公斤 0
02356250 0.5钢板60Si2Mn   公斤 0.12
02376151 0.1钢板 1Cr18Ni9Ti 公斤 0.1
02376159 不锈钢板 0.5/1Cr18Ni9Ti 公斤 0.325
28000810 六角螺栓 8.8M6×60 4
28000811 六角螺栓 8.8M6×60 11
28001131 六角螺栓 8.8M8×45 31
28001221 六角螺栓 8.8M8×65 46
28001231 六角螺栓 8.8M8×70 2
28001261 六角螺栓 8.8M8×80 6
28001271 六角螺栓 8.8M8×80 4
28001427 六角螺栓 A4-70M10×20 68
28001511 六角螺栓 M10*30 2
28001516 六角螺栓 A2-70M10×30 2
28001541 六角螺栓 8.8M10×35 8
28001561 六角螺栓 8.8M10×40 10
28001566 六角螺栓 A2-70M10×40 32
28001591 六角螺栓 8.8M10×45 3
28001611 六角螺栓 8.8M10×50 72
28001631 六角螺栓 8.8M10×55 8
28001641 六角螺栓   8
28001741 六角螺栓 M10×60 8.8M10×60 10
28001681 六角螺栓 8.8M10×65 1
321905000130 螺堵M16 聚甲醛 8
32352120 电流传感器 LTC1000-SF 1
33018205 断路器 3RV1021-1HA15 4
33018206 继电器 3RV1021-4DA15 1
33018207 三相交流断路器 3RV1021-1CA15 1
33019250 高速断路器 UR.6 31 1
33019356 5SP4小型断路器 5SP4292-7  
33019493 辅助连锁盒 3RH1911-2FA22 2
33129765 熔断器 170M2015 2
33251570 终端电阻   2
33270100 二位三通电磁阀 4101049 2
33270110 双向脉冲电磁阀 DC 110 1
33270120 双向阀 DN 10 1
33270130 合成闸瓦 HXY-65 8
33820090 继电器 6-1393809-2 8
33823031 继电器 V23162-B0721-B110 9
33823032 继电器 V23162-B0735-B110 15
33823033 继电器 SR6ZA615 2
33829410 继电器底座 RPE-6129 0
69111190 数字量输入模块 DIM 3
69111690 发光电路板 新加坡工程车 2
69111700 滚轮系统 304不锈钢 12
69113511 电源模块 TGY24-D5 2
69113512 电源模块 TGY24-D6 1
69116090 空气干燥器   1
69116525 风机 W2E 200-HK38-01 0
WP00000349G00 防尘垫(二) 氯丁橡胶BE53642 16
WP00000666G00 制动柜不干胶标牌 0.3不干胶PVC 1
WP00000825G00 安全绳压制   1
36530020 直纹布带   1
14290600 醇酸稀释剂   公斤 0.5
A1902120 弯把刷子   1
19021240 羊毛刷   1
WA00001088G00 当心挤脚标识   4
WA00001083G00 当心夹手和撞击标识   2
WP00000828G00 毛毡1   2
WP00000830G00 毛毡2   2

表2

编号 名称 规格 单位 数量
02356230 0.3钢板60Si2Mn   公斤 0.07
02356250 0.5钢板60Si2Mn   公斤 0.12
02376151 0.1钢板 1Cr18Ni9Ti 公斤 0.1
02376159 不锈钢板 0.5/1Cr18Ni9Ti 公斤 0.325
28000810 六角螺栓 8.8M6×60 4
28000811 六角螺栓 8.8M6×60 6
28001131 六角螺栓 8.8M8×45 31
28001221 六角螺栓 8.8M8×65 46
28001231 六角螺栓 8.8M8×70 2
28001261 六角螺栓 8.8M8×80 6
28001271 六角螺栓 8.8M8×80 4
28001427 六角螺栓 A4-70M10×20 68
28001511 六角螺栓 M10*30 2
28001516 六角螺栓 A2-70M10×30 2
28001541 六角螺栓 8.8M10×35 8
28001561 六角螺栓 8.8M10×40 10
28001566 六角螺栓 A2-70M10×40 32
28001591 六角螺栓 8.8M10×45 3
28001611 六角螺栓 8.8M10×50 72
28001631 六角螺栓 8.8M10×55 8
28001641 六角螺栓   8
28001741 六角螺栓 M10×60 8.8M10×60 10
28001681 六角螺栓 8.8M10×65 1
321905000130 螺堵M16 聚甲醛 8
32352120 电流传感器 LTC1000-SF 1
33018205 断路器 3RV1021-1HA15 4
33018206 继电器 3RV1021-4DA15 1
33018207 三相交流断路器 3RV1021-1CA15 1
33019250 高速断路器 UR.6 31 1
33019356 5SP4小型断路器 5SP4292-7  
33019493 辅助连锁盒 3RH1911-2FA22 2
33129765 熔断器 170M2015 2
33251570 终端电阻   2
33270100 二位三通电磁阀 4101049 2
33270110 双向脉冲电磁阀 DC 110 1
33270120 双向阀 DN 10 1
33270130 合成闸瓦 HXY-65 8
33820090 继电器 6-1393809-2 8
33823031 继电器 V23162-B0721-B110 9
33823032 继电器 V23162-B0735-B110 15
33823033 继电器 SR6ZA615 2
33829410 继电器底座 RPE-6129 0
69111190 数字量输入模块 DIM 3
69111690 发光电路板 新加坡工程车 2
69111700 滚轮系统 304不锈钢 12
69113511 电源模块 TGY24-D5 2
69113512 电源模块 TGY24-D6 1
69116090 空气干燥器   1
69116525 风机 W2E 200-HK38-01 0
WP00000349G00 防尘垫(二) 氯丁橡胶BE53642 16
WP00000666G00 制动柜不干胶标牌 0.3不干胶PVC 1
WP00000825G00 安全绳压制   1
36530020 直纹布带   1
14290600 醇酸稀释剂   公斤 0.5
A1902120 弯把刷子   1
19021240 羊毛刷   1
WA00001088G00 当心挤脚标识   4
WA00001083G00 当心夹手和撞击标识   2
WP00000828G00 毛毡1   2
WP00000830G00 毛毡2   2

代码

取出其中一张数据表中的所有数据,使用循环一一与另一张数据表中的数据进行比较,记录其不同处。再取出另一张数据表中的所有数据,采用相同的方法进行比较。

Option ExplicitSub 比较两表数据()Dim sht1 As WorksheetDim sht2 As WorksheetDim shtResult As WorksheetDim Rng As RangeDim row1 As LongDim rowNew As LongDim sNo As StringDim QTY As DoubleSet sht1 = Sheets("sheet1")Set sht2 = Sheets("sheet2")Set shtResult = Sheets("sheet3")rowNew = 2shtResult.Range("A2:B" & Rows.Count).ClearFor row1 = 2 To sht1.Range("A1").CurrentRegion.Rows.CountsNo = sht1.Cells(row1, 1).ValueQTY = sht1.Cells(row1, 5).ValueSet Rng = sht2.Range("A:A").Find(sNo, lookat:=xlWhole)If Rng Is Nothing ThenshtResult.Cells(rowNew, 1).Value = "'" & sNoshtResult.Cells(rowNew, 2).Value = "数据表2中不存在"rowNew = rowNew + 1ElseIf QTY <> Rng.Offset(0, 4).Value ThenshtResult.Cells(rowNew, 1).Value = "'" & sNoshtResult.Cells(rowNew, 2).Value = "两表的数量不相同"rowNew = rowNew + 1End IfEnd IfNext row1For row1 = 2 To sht2.Range("A1").CurrentRegion.Rows.CountsNo = sht2.Cells(row1, 1).ValueQTY = sht2.Cells(row1, 5).ValueSet Rng = sht2.Range("A:A").Find(sNo, lookat:=xlWhole)If Rng Is Nothing ThenshtResult.Cells(rowNew, 1).Value = "'" & sNoshtResult.Cells(rowNew, 2).Value = "数据表2中不存在"rowNew = rowNew + 1End IfNext row1
End Sub

Excel 2010 VBA 入门 082 数据处理之对比两个表的数据相关推荐

  1. Excel 2010 VBA 入门 095 数据处理之用数组实现分列

    示例 如图所示,该表为某系统中导出的数据.由于该数据将原本的四列信息合并至一个单元格中,现希望利用数组对该数据进行分列,将其分为四列. 关键词;关注指数;升降幅度;升降位次 小胸钢托聚拢游泳衣;12; ...

  2. Excel 2010 VBA 入门 081 数据处理之获取不重复的数据

    目录 示例 示例数据表 代码1 去除重复值(RemoveDuplicates)方法 代码2 代码3 示例 如图所示,该表为某村人口登记表.现希望得知有哪些户的居民已登记,因而希望获取"户号& ...

  3. Excel 2010 VBA 入门 086 数据处理之获取交叉查询结果表

    目录 示例 代码 交叉汇总表 建立交叉汇总表的步骤 建立交叉汇总表的优化 示例 如图所示,该表为某公司的销售数据表.现希望建立一个汇总表,按月份和商品名汇总收入,并将月份作为列标题而商品名作为行标题. ...

  4. Excel 2010 VBA 入门 087 数据处理之按单列汇总多个工作表

    示例 如图所示,该工作簿中包含若干个工作表,工作表中为各个学校书籍销售明细.如  何使用VBA按其工作表中的图书名称汇总各种图书的数量? 示例数据表 序号 图书名称 版  别 年版 定价 适读范围 订 ...

  5. Excel 2010 VBA 入门 093 数据处理之建立数组

    目录 示例 代码 数组的基本概念 数组的声明 数组的赋值与数组数据的读取 Ubound和Lbound函数获取数组的上下限 ForEach---Next循环遍历数组的注意事项 计算程序运行的时间 数组处 ...

  6. Excel 2010 VBA 入门 088 数据处理之汇总列数不相等的多个工作表

    目录 示例 代码1 合并汇总(Consolidate)方法 Array函数 Evaluate方法构造数组 代码2 示例 如图所示,该工作簿中有若干个工资表,由于每个月发放的工资项目不同,因而造成每个工 ...

  7. Excel 2010 VBA 入门 077 数据处理之合计汇总

    目录 示例 代码1 代码2 代码3 示例 如图所示,该表为某公司年度销售表.如何使用VBA求出每个销售员的年度销售额合计以及公司月度销售合计? 销售员 1月 2月 3月 4月 5月 6月 7月 8月 ...

  8. Excel 2010 VBA 入门 076 数据处理之计算个人所得税

    目录 个人所得税税率表(月度综合所得,适用于2019年及以后取得的综合所得) 代码 个人所得税税率表(月度综合所得,适用于2019年及以后取得的综合所得) (非居民个人工资.薪金所得,劳务报酬所得,稿 ...

  9. Excel 2010 VBA 入门 034 创建图片批注

    目录 批注(Comment)对象 批注的添加与删除 FiIIFormat对象 OnError语句 示例: 批注(Comment)对象 Comment对象是单元格的一个属性,表示单元格的批注.Comme ...

最新文章

  1. Flutter开发之布局-1-Column(15)
  2. 攻防世界-web-unfinish-从0到1的解题历程writeup
  3. 618 技术特辑(二)几百万人同时下单的秒杀,为什么越来越容易抢到了?
  4. windows下anaconda环境激活报错CommandNotFoundError: Your shell has not been properly configured to use ‘con
  5. 程序员过关斩将——搞定秒杀,只需要这几步!!
  6. Oracle透明网关 for SQL Server
  7. [04-01]css组合选择器
  8. Mvc model验证总结
  9. 多个切点 boot spring_spring基于aspectJ的切点表示
  10. java 全局唯一id_JAVA生成全局唯一ID 使用 java.util.UUID
  11. Kaggle Tabular Playground Series - Jan 2022 学习笔记2(使用时间序列的线性回归)
  12. SQL 随机抽取样本
  13. iphone苹果手机ios15系统最新降级方法教程
  14. request.getParameter()与request.getParameterValues()的区别和使用方式
  15. 男人的梦想:世界名车标志
  16. 全面解析软文营销中的八大技巧
  17. qpython3使用手册图_qpython 图
  18. 爬虫学习笔记(十八)—— 点触验证码:超级鹰、12306自动登录
  19. WEB页面播放大华摄像头视频解决方案
  20. Java 下载 Excel文件打不开

热门文章

  1. 时间序列模型算法 - Prophet,LSTM(二)
  2. android本地备忘录助手
  3. 中通/圆通API接口 PHP 简单封装示例
  4. mongodb-compass下载地址
  5. 《如何撰写一份全面、详细、可行的食品项目计划书》
  6. airpods安卓延迟怎么解决_苹果手机存在微信延迟情况怎么解决?
  7. 使用Acorn for Mac制作漫画文字
  8. 爱好高科技之人脸识别模块
  9. Python读取 xlsb 文件格式
  10. 搭建实验室3d slam 移动小车 3.2jackal移动平台axis-ptz魚眼摄像头调试