Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2195|回复: 1

[已解决]两行数据对比 用VBA实现

[复制链接]
发表于 2016-5-29 18:32 | 显示全部楼层 |阅读模式
本帖最后由 乐乐2006201506 于 2016-5-29 19:48 编辑

        一般都是比较两列数据的差异,我这个是要求实现两行(第一行和第三行)数据对比,并将第一行和第三行不同的数据放在第六行,将第三行和第一行不同的数据放在第八行,谢谢!
最佳答案
2016-5-29 19:24
代码如下:
  1. Sub xx()
  2.     Dim i&, n&, m&, j&, x&, arr(), brr(), crr(), drr()
  3.     With Sheet1
  4.         n = .Cells(1, .Columns.Count).End(1).Column
  5.         m = .Cells(3, .Columns.Count).End(1).Column
  6.         arr = .Range(.Cells(1, 1), .Cells(1, n))
  7.         brr = .Range(.Cells(3, 1), .Cells(3, n))
  8.         x = 1
  9.         For i = 1 To n
  10.             For j = 1 To m
  11.                 If arr(1, i) = brr(1, j) Then Exit For
  12.             Next
  13.             If j > m Then
  14.                 ReDim Preserve crr(1 To x)
  15.                 crr(x) = arr(1, i)
  16.                 x = x + 1
  17.             End If
  18.         Next
  19.         .Range("A6").Resize(1, x - 1) = crr
  20.         x = 1
  21.         For i = 1 To m
  22.             For j = 1 To n
  23.                 If brr(1, i) = arr(1, j) Then Exit For
  24.             Next
  25.             If j > n Then
  26.                 ReDim Preserve drr(1 To x)
  27.                 drr(x) = brr(1, i)
  28.                 x = x + 1
  29.             End If
  30.         Next
  31.         .Range("A8").Resize(1, x - 1) = drr
  32.     End With
  33. End Sub
复制代码

两行数据对比.rar

6.83 KB, 下载次数: 23

发表于 2016-5-29 19:24 | 显示全部楼层    本楼为最佳答案   
代码如下:
  1. Sub xx()
  2.     Dim i&, n&, m&, j&, x&, arr(), brr(), crr(), drr()
  3.     With Sheet1
  4.         n = .Cells(1, .Columns.Count).End(1).Column
  5.         m = .Cells(3, .Columns.Count).End(1).Column
  6.         arr = .Range(.Cells(1, 1), .Cells(1, n))
  7.         brr = .Range(.Cells(3, 1), .Cells(3, n))
  8.         x = 1
  9.         For i = 1 To n
  10.             For j = 1 To m
  11.                 If arr(1, i) = brr(1, j) Then Exit For
  12.             Next
  13.             If j > m Then
  14.                 ReDim Preserve crr(1 To x)
  15.                 crr(x) = arr(1, i)
  16.                 x = x + 1
  17.             End If
  18.         Next
  19.         .Range("A6").Resize(1, x - 1) = crr
  20.         x = 1
  21.         For i = 1 To m
  22.             For j = 1 To n
  23.                 If brr(1, i) = arr(1, j) Then Exit For
  24.             Next
  25.             If j > n Then
  26.                 ReDim Preserve drr(1 To x)
  27.                 drr(x) = brr(1, i)
  28.                 x = x + 1
  29.             End If
  30.         Next
  31.         .Range("A8").Resize(1, x - 1) = drr
  32.     End With
  33. End Sub
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 08:02 , Processed in 0.321287 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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