打开APP
userphoto
未登录

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

开通VIP
Excel之VBA常用功能应用篇:几行VBA代码,轻松轻松找出不同数据

财务当中或者是两个相同类型的表进行核对的时候,需要对工作表进行数据对比。

此项工作如果人工完成,可能有点困难,无论是对人的耐心还是对眼睛的长时间注视都提出不小的挑战。

当然了,Excel中也有一些方便的操作或以实现。

本节就以VBA为基础,进行一些编码,然后实现此类功能。

首先,对工作表对比进行一个流程演练。

本节主要针对两个表比对,三个以上不做考虑。

那么就要以两个表进行数据考虑,设置两个变量数组,把表内容保存到数组当中,然后,分别进行数组对比,这样做效率很高,最好不要进行单元格对比。

由于是不同的两个表,所以有可能一个表数据比另一个多。

那么就分别提取两个数组的上下标,这样把多出来数据的直接标识为不同。

两个数组比对使用两个循环进行。

下面看代码,自己分析一下。

上图为比对结果,带颜色的就是比对出不同数据的单元格。

比较使用了一个过程,如下:

Private Sub CheckString()

Dim S1 As Worksheet, S2 As Worksheet

Dim cArr(), s1Arr, s2Arr, ir1 As Long, ir2 As Long, ic1 As Long, ic2 As Long

Dim i As Long, c As Long, n As Long, ir As Long, ic As Long, ire As Long, ice As Long

cArr = Array(Sheets(1).Name, Sheets(2).Name)

ThisWorkbook.Worksheets(cArr).Select

Set S1 = ThisWorkbook.Worksheets(cArr(0))

Set S2 = ThisWorkbook.Worksheets(cArr(1))

S1.UsedRange.Interior.Color = RGB(251, 251, 251)

S2.UsedRange.Interior.Color = RGB(251, 251, 251)

s1Arr = S1.UsedRange

s2Arr = S2.UsedRange

ir1 = UBound(s1Arr, 1)

ic1 = UBound(s1Arr, 2)

ir2 = UBound(s2Arr, 1)

ic2 = UBound(s2Arr, 2)

If ir1 > ir2 Then

ir = ir2

ire = ir1 - ir2

Else

ir = ir1

ire = ir2 - ir1

End If

If ic1 > ic2 Then

ic = ic2

ice = ic1 - ic2

Else

ic = ic1

ice = ic2 - ic1

End If

For i = 1 To ir

For c = 1 To ic

If s1Arr(i, c) <> s2Arr(i, c) Then

S1.Cells(i, c).Interior.Color = RGB(222, 211, 112)

S2.Cells(i, c).Interior.Color = RGB(222, 211, 112)

n = n + 1

End If

Next c

Next i

For i = ir To ir + ire

For c = ic To ic + ice

n = n + 1

Next c

Next i

MsgBox "对比结束,一共找出:" & n & "处不同!", vbInformation, "提示"

End Sub

代码还是比较简单的,主要是循环比较不好理解,实际上逻辑也不难,就是两个数组进行比较。

数据不同就把相应的单元格设置颜色,相同就不做任何处理。

重点是要对二维数组有一个清晰的概念,要知道哪个单元格对应的数组维度,这样就很好理解代码了。

多学多练,自然就明白了。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VBA中数组下标的获取方法!
Excel VBA工作薄 5.1 按照单元格内容批量创建工作薄 我让你10秒
字典与数组 vba(第一例)
Excel VBA小程序
vba怎样把二维数组赋值给一个表格
EXCEL用VBA代替VLOOKUP函数,速度更快更通用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服