请前辈指点迷津-求两表间不同行
时间:2011-08-10
来源:互联网
Sub ks()
'On Error Resume Next
Dim gx_rhfis As Integer '新数据表的首行行号
Dim gx_rhlas As Integer '新数据表的末行行号
Dim gx_h As Integer
Dim y_rhfis As Integer '原数据表的首行行号
Dim y_rhlas As Integer '原数据表的末行行号
Dim gx_a As Variant '新数据表的数组
Dim y_b As Variant '原数据表的数组
Dim i As Integer
Dim ii As Integer
Worksheets("两表间数据差00").Activate
gx_rhfis = Application.Match(7, Worksheets("两表间数据差00").Range("a:a"), False)
gx_rhlas = Application.Match(7, Worksheets("两表间数据差00").Range("a:a"), True)
Cells(2, 2) = gx_rhfis
Cells(2, 3) = gx_rhlas
gx_h = Cells(gx_rhlas, Columns.Count).End(xlToLeft).Column
Range(Cells(gx_rhfis, 1), Cells(gx_rhlas, gx_h)).Select
Selection.Sort Key1:=Range("D" & gx_rhfis), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal
ReDim gx_a(1 To gx_rhlas - gx_rhfis + 1, 1 To 6)
gx_a = Worksheets("两表间数据差00").Range(Cells(gx_rhfis, 1), Cells(gx_rhlas, 6)).Value
Cells(3, 4) = gx_a(9, 6)
Worksheets("两表间数据差2").Activate
y_rhfis = Application.Match(7, Worksheets("两表间数据差2").Range("a:a"), False)
y_rhlas = Application.Match(7, Worksheets("两表间数据差2").Range("a:a"), True)
Worksheets("两表间数据差2").Cells(2, 2) = y_rhfis
Worksheets("两表间数据差2").Cells(2, 3) = y_rhlas
ReDim y_b(1 To y_rhlas - y_rhfis + 1, 1 To 6)
y_b = Range(Cells(y_rhfis, 1), Cells(y_rhlas, 6)).Value '有误,y_b没有取到值
'y_b = Worksheets("两表间数据差2").Range(Cells(y_rhfis, 1), Cells(y_rhlas, 6)).Value
Worksheets("两表间数据差2").Cells(2, 4) = y_b(1, 6)
For i = 1 To gx_rhlas - gx_rhfis + 1 Step 1
For ii = 1 To y_rhlas - y_rhfis + 1 Step 1
If gx_a(i, 1) & gx_a(i, 4) & gx_a(i, 6) <> y_b(ii, 1) & y_b(ii, 4) & y_b(ii, 6) Then
Worksheets("两表间数据差00").Rows(gx_rhfis + i - 1).Interior.ColorIndex = 34
End If
Next ii
Next i
End Sub
结果应该为 表 "两表间数据差00" 中的11行,12行,15行,19行被选中,可是结果全部选中,请指教!
选择两表间不同的行.zip(7.81 KB)
'On Error Resume Next
Dim gx_rhfis As Integer '新数据表的首行行号
Dim gx_rhlas As Integer '新数据表的末行行号
Dim gx_h As Integer
Dim y_rhfis As Integer '原数据表的首行行号
Dim y_rhlas As Integer '原数据表的末行行号
Dim gx_a As Variant '新数据表的数组
Dim y_b As Variant '原数据表的数组
Dim i As Integer
Dim ii As Integer
Worksheets("两表间数据差00").Activate
gx_rhfis = Application.Match(7, Worksheets("两表间数据差00").Range("a:a"), False)
gx_rhlas = Application.Match(7, Worksheets("两表间数据差00").Range("a:a"), True)
Cells(2, 2) = gx_rhfis
Cells(2, 3) = gx_rhlas
gx_h = Cells(gx_rhlas, Columns.Count).End(xlToLeft).Column
Range(Cells(gx_rhfis, 1), Cells(gx_rhlas, gx_h)).Select
Selection.Sort Key1:=Range("D" & gx_rhfis), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal
ReDim gx_a(1 To gx_rhlas - gx_rhfis + 1, 1 To 6)
gx_a = Worksheets("两表间数据差00").Range(Cells(gx_rhfis, 1), Cells(gx_rhlas, 6)).Value
Cells(3, 4) = gx_a(9, 6)
Worksheets("两表间数据差2").Activate
y_rhfis = Application.Match(7, Worksheets("两表间数据差2").Range("a:a"), False)
y_rhlas = Application.Match(7, Worksheets("两表间数据差2").Range("a:a"), True)
Worksheets("两表间数据差2").Cells(2, 2) = y_rhfis
Worksheets("两表间数据差2").Cells(2, 3) = y_rhlas
ReDim y_b(1 To y_rhlas - y_rhfis + 1, 1 To 6)
y_b = Range(Cells(y_rhfis, 1), Cells(y_rhlas, 6)).Value '有误,y_b没有取到值
'y_b = Worksheets("两表间数据差2").Range(Cells(y_rhfis, 1), Cells(y_rhlas, 6)).Value
Worksheets("两表间数据差2").Cells(2, 4) = y_b(1, 6)
For i = 1 To gx_rhlas - gx_rhfis + 1 Step 1
For ii = 1 To y_rhlas - y_rhfis + 1 Step 1
If gx_a(i, 1) & gx_a(i, 4) & gx_a(i, 6) <> y_b(ii, 1) & y_b(ii, 4) & y_b(ii, 6) Then
Worksheets("两表间数据差00").Rows(gx_rhfis + i - 1).Interior.ColorIndex = 34
End If
Next ii
Next i
End Sub
结果应该为 表 "两表间数据差00" 中的11行,12行,15行,19行被选中,可是结果全部选中,请指教!
附件

2011-8-10 20:31, 下载次数: 8
作者: binghe2360 发布时间: 2011-08-10
请见附件。
代码需放在模块1里面。
选择两表间不同的行0812.rar(10.02 KB)
代码需放在模块1里面。
附件

2011-8-12 08:10, 下载次数: 2
作者: 蓝桥玄霜 发布时间: 2011-08-12
楼主算法上有问题.
你用A列,D列,F列直接对照,如果有不同的就上色,那是不对的,你刚好反了.
应该是当数组1取值后,与数组2全部核对结束后,才能上色,你太心急了.
你用A列,D列,F列直接对照,如果有不同的就上色,那是不对的,你刚好反了.
应该是当数组1取值后,与数组2全部核对结束后,才能上色,你太心急了.
作者: shuyee 发布时间: 2011-08-12
感谢 "蓝桥玄霜"
感谢 "shuyee"
问题已解决!
晚辈学习了!
感谢 "shuyee"
问题已解决!
晚辈学习了!
作者: binghe2360 发布时间: 2011-08-12
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28