打开APP
userphoto
未登录

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

开通VIP
Excel 2010 VBA 入门 082 数据处理之对比两个表的数据
示例:
如图所示,该工作簿中有两个来自不同数据源的材料表,这两个表中的数据可能不同。如何使用VBA比较两张表的编号与数量,并建立一张对照表,分别列出两张表的不同:编号同时存在但数量不同;编号在其中一张表中存在,而另一张表中不存在(标注哪张表不存在)?
示例数据表
表1
编号名称规格单位数量
370005钕铁硼N-35H公斤0
023562500.5钢板60Si2Mn 公斤0.12
023761510.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×608.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
330193565SP4小型断路器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
编号名称规格单位数量
023562300.3钢板60Si2Mn 公斤0.07
023562500.5钢板60Si2Mn 公斤0.12
023761510.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×608.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
330193565SP4小型断路器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 Explicit
Sub 比较两表数据()
Dim sht1 As Worksheet
Dim sht2 As Worksheet
Dim shtResult As Worksheet
Dim Rng As Range
Dim row1 As Long
Dim rowNew As Long
Dim sNo As String
Dim QTY As Double
Set sht1 = Sheets("sheet1")
Set sht2 = Sheets("sheet2")
Set shtResult = Sheets("sheet3")
rowNew = 2
shtResult.Range("A2:B" & Rows.Count).Clear
For row1 = 2 To sht1.Range("A1").CurrentRegion.Rows.Count
sNo = sht1.Cells(row1, 1).Value
QTY = sht1.Cells(row1, 5).Value
Set Rng = sht2.Range("A:A").Find(sNo, lookat:=xlWhole)
If Rng Is Nothing Then
shtResult.Cells(rowNew, 1).Value = "'" & sNo
shtResult.Cells(rowNew, 2).Value = "数据表2中不存在"
rowNew = rowNew + 1
Else
If QTY <> Rng.Offset(0, 4).Value Then
shtResult.Cells(rowNew, 1).Value = "'" & sNo
shtResult.Cells(rowNew, 2).Value = "两表的数量不相同"
rowNew = rowNew + 1
End If
End If
Next row1
For row1 = 2 To sht2.Range("A1").CurrentRegion.Rows.Count
sNo = sht2.Cells(row1, 1).Value
QTY = sht2.Cells(row1, 5).Value
Set Rng = sht2.Range("A:A").Find(sNo, lookat:=xlWhole)
If Rng Is Nothing Then
shtResult.Cells(rowNew, 1).Value = "'" & sNo
shtResult.Cells(rowNew, 2).Value = "数据表2中不存在"
rowNew = rowNew + 1
End If
Next row1
End Sub
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
常用内六角螺栓尺寸表
六角螺栓及螺母尺寸表
M3M4M5 8.8级镀锌外六角螺丝钉螺栓*6
内六角螺栓尺寸表
用SolidWorks画一个钣金扣,再添加上螺栓和螺母
让工作效率飞起来,一键生成带有超级链接的工作表目录
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服