福田皇岗社区做网站,做企业网站前期需要准备什么,深圳企业建站招聘,天津百度关键词seo工作背景#xff1a;比对两组数据是否一致#xff08;位置非一一对应#xff09;
思路构建#xff1a;两组数据转换为两组字符串数组#xff0c;比对所包含元素是否相同
问题点#xff1a;A数组的第一个元素不一定与B数组的第一个元素对应#xff0c;此时无法通过公式…工作背景比对两组数据是否一致位置非一一对应
思路构建两组数据转换为两组字符串数组比对所包含元素是否相同
问题点A数组的第一个元素不一定与B数组的第一个元素对应此时无法通过公式简单对照
注网上很多方法都是仅考虑位置一一对应的情况没有考虑数据错位的情况
突破点利用统一的排序规则先分别将两个数组作排序然后再比对。
逐一比对数组内相应位置的元素若均相同则两数组相同即两组数据相同。
参考链接比較不同排列的字符串内容是否相同
目录
范例图示两行数据的是否一致M1、M2、M3
1. 构建字符串数组并调用比较函数主过程
2. 构建排序函数低版本EXCEL需要高版本可直接使用EXCEL内置Sort
3. 构建比较函数模块化编程避免主函数冗杂
其他 VBA StrComp函数 范例图示两行数据的是否一致M1、M2、M3 1. 构建字符串数组并调用比较函数主过程 注1比对两行的M1、2、3组合是否一致构建数组元素时要将 材料板厚 作为一个整体考虑。
注2执行时需要将1,2,3个代码块同时放在同一个模块下
Sub Example()
Dim M(), M_Temp(), M1, M2, M3, M1_Temp, M2_Temp, M3_Temp As Variant
Dim i As BooleanM1 Sheet3.Range(a32) Sheet3.Range(b32)
M2 Sheet3.Range(c32) Sheet3.Range(d32)
M3 Sheet3.Range(e32) Sheet3.Range(f32)
M1_Temp Sheet3.Range(a33) Sheet3.Range(b33)
M2_Temp Sheet3.Range(c33) Sheet3.Range(d33)
M3_Temp Sheet3.Range(e33) Sheet3.Range(f33)M Array(M1, M2, M3)
M_Temp Array(M1_Temp, M2_Temp, M3_Temp)结果输出
i Compare_Combination(M, M_Temp, 3)Sheet3.Range(b35) iEnd Sub
2. 构建排序函数低版本EXCEL需要高版本可直接使用EXCEL内置Sort
Function Sort_Array(arr() As Variant) As VariantDim i, j As Integer
Dim temp As Variant因字符串比较因此仅能使用StrComp
For i LBound(arr) To UBound(arr)For j i 1 To UBound(arr)If VBA.StrComp(arr(i), arr(j), vbTextCompare) 0 Then 字符顺序由小到大排序temp arr(i)arr(i) arr(j)arr(j) tempEnd IfNext j
Next iSort_Array arr()End Function
3. 构建比较函数模块化编程避免主函数冗杂
Function Compare_Combination(M() As Variant, M_Temp() As Variant, num As Integer) M() 基准组合M_Temp() 待比对组合num 为元素数量比对结果默认为True
Dim result As Boolean
result TrueDim T(), T_Temp() As Variant 低版本EXCEL自主构建sort函数
T Sort_Array(M)
T_Temp Sort_Array(M_Temp)高版本EXCEL内置sort函数时可使用Sort函数需数组为列存储时方可正确排序行数据无法正确排序因此需转置再排序
T Excel.Application.WorksheetFunction.Sort(Application.WorksheetFunction.Transpose(M))
T_Temp Excel.Application.WorksheetFunction.Sort(Application.WorksheetFunction.Transpose(M_Temp))Dim i As Integer
For i 0 To num - 1If T(i) T_Temp(i) Thenresult FalseExit ForEnd If
NextCompare_Combination resultEnd Function
其他 VBA StrComp函数