|
本帖最后由 Eternerlong 于 2015-11-17 22:35 编辑
C05 Eternerlong 交作业啦- Function 对比(rng1 As Range, rng2 As Range)
- Dim arr, brr, i As Integer, k As Integer
- ' 前提是每个逗号必须是中文逗号
- arr = Split(rng1, ",")
- brr = Split(rng2, ",")
- '将arr,brr 去重存入字典中,目的是对比时数据中的每个数据唯一存在
- Dim d As New Dictionary, d1 As New Dictionary
- For i = 0 To UBound(arr)
- If d.Exists(arr(i)) Then
- d(arr(i)) = arr(i) & d(arr(i))
- Else
- d(arr(i)) = arr(i)
- End If
- Next
- For i = 0 To UBound(brr)
- If d1.Exists(brr(i)) Then
- d1(brr(i)) = brr(i) & d1(brr(i))
- Else
- d1(brr(i)) = brr(i)
- End If
- Next
- '将字典中的数据放入数组中并判断arr1和brr1是否相等
- Dim arr1, brr1, m As Integer
- arr1 = d.Items
- brr1 = d1.Items
- For i = 0 To UBound(arr1)
- For k = 0 To UBound(brr1)
- If arr1(i) = brr1(k) Then m = m + 1
- Next
- Next
- If m = UBound(arr1) + 1 And UBound(brr1) = UBound(arr1) Then
- 对比 = "相等"
- Else
- 对比 = "不相等"
- End If
- End Function
复制代码 |
|