前言:
此刻大家对“vba 字符串对比”大约比较关怀,兄弟们都想要分析一些“vba 字符串对比”的相关文章。那么小编在网摘上网罗了一些有关“vba 字符串对比””的相关资讯,希望各位老铁们能喜欢,大家一起来了解一下吧!财务当中或者是两个相同类型的表进行核对的时候,需要对工作表进行数据对比。
此项工作如果人工完成,可能有点困难,无论是对人的耐心还是对眼睛的长时间注视都提出不小的挑战。
当然了,Excel中也有一些方便的操作或以实现。
本节就以VBA为基础,进行一些编码,然后实现此类功能。
首先,对工作表对比进行一个流程演练。
本节主要针对两个表比对,三个以上不做考虑。
那么就要以两个表进行数据考虑,设置两个变量数组,把表内容保存到数组当中,然后,分别进行数组对比,这样做效率很高,最好不要进行单元格对比。
由于是不同的两个表,所以有可能一个表数据比另一个多。
那么就分别提取两个数组的上下标,这样把多出来数据的直接标识为不同。
两个数组比对使用两个循环进行。
下面看代码,自己分析一下。
上图为比对结果,带颜色的就是比对出不同数据的单元格。
比较使用了一个过程,如下:
Private Sub CheckString()Dim S1 As Worksheet, S2 As WorksheetDim cArr(), s1Arr, s2Arr, ir1 As Long, ir2 As Long, ic1 As Long, ic2 As LongDim i As Long, c As Long, n As Long, ir As Long, ic As Long, ire As Long, ice As LongcArr = Array(Sheets(1).Name, Sheets(2).Name)ThisWorkbook.Worksheets(cArr).SelectSet 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.UsedRanges2Arr = S2.UsedRangeir1 = UBound(s1Arr, 1)ic1 = UBound(s1Arr, 2)ir2 = UBound(s2Arr, 1)ic2 = UBound(s2Arr, 2)If ir1 > ir2 Then ir = ir2 ire = ir1 - ir2Else ir = ir1 ire = ir2 - ir1End IfIf ic1 > ic2 Then ic = ic2 ice = ic1 - ic2Else ic = ic1 ice = ic2 - ic1End IfFor 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 cNext iFor i = ir To ir + ire For c = ic To ic + ice n = n + 1 Next cNext iMsgBox "对比结束,一共找出:" & n & "处不同!", vbInformation, "提示"End Sub
代码还是比较简单的,主要是循环比较不好理解,实际上逻辑也不难,就是两个数组进行比较。
数据不同就把相应的单元格设置颜色,相同就不做任何处理。
重点是要对二维数组有一个清晰的概念,要知道哪个单元格对应的数组维度,这样就很好理解代码了。
多学多练,自然就明白了。
欢迎关注、收藏
---END---
标签: #vba 字符串对比 #vba数据比对怎么写