怎样从一个数组中找出另一个数组不同内容(vba三法)

来源:百度文库 编辑:神马文学网 时间:2024/05/01 21:55:31
***************循环遍历法*******************************
Sub 怎样从一个数组中找出另一个数组不存在的内容()
Dim b(), c(), d()
b = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
c = Array(1, 2, 3, 4, 5, 6, 7, 8)
n = 1
K = 0
For I = LBound(b) To UBound(b)
For j = LBound(c) To UBound(c)
If c(j) = b(I) Then
K = 0
Exit For
Else
K = K + 1
If K = UBound(c) + 1 Then
ReDim Preserve d(1 To n)
d(n) = b(I)
n = n + 1
K = 0
End If
End If
Next
Next
MsgBox Join(d, ",")
End Sub
*************************************************Filter 方法****************************************
Sub 怎样从一个数组中找出另一个数组不存在的内容2()
Dim b(), c(), d()
b = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
c = Array(1, 2, 3, 4, 5, 6, 7, 8)
n = 1
For j = LBound(b) To UBound(b)
If UBound(VBA.Filter(c, b(j))) = -1 Then
ReDim Preserve d(1 To n)
d(n) = b(j)
n = n + 1
End If
Next
MsgBox Join(d, ",")
End Sub
***********************excel home案例************************
现有两个字符串:“1,2,3,4,5”和“1,3,4,6”
我如何用vba知道这样的结果:第二个字符串比第一个字符串少了2和5,而多了6
谢谢帮忙!
不知道楼主怎么得到少了3,4的结果
如果全部是一位数字用Instr判断就可以,否则需要用下面的两次循环
Sub Check()
a = "1,2,3,4,5"
b = "1,3,4,6"
c = Split(a, ",")
d = Split(b, ",")
e = "缺少:"
f = "多:"
For i = 0 To UBound(c)
If UBound(VBA.Filter(d, c(i))) = -1 Then e = e & c(i) & "-"
Next
For i = 0 To UBound(d)
If UBound(VBA.Filter(c, d(i))) = -1 Then f = f & d(i) & "-"
Next
MsgBox e & vbCrLf & f
End Sub