eXcel中的∨ba?
2 3 8 4 3 0 6 5 2
0 4 1 6 5 0 9 3 1
3 6 5 6 1 9 0 4 7
1 8 4 2 4 6 8 1 4
4 4 2 8 0 8 2 5 3
8 2 4 3 8 4 4 8 8
共同的交集为:
4
8
请问用∨ba怎么写?谢谢您了! 展开
样本数据工作表:
程序代码和运行结果:
程序算法见注释,程序文本如下:
Option Explicit
Sub 取是所有列的交集()
Dim arr, i1, i2, j, k
arr = Range("a1").CurrentRegion
'对第一列所有元素进行判断:如果在后面的某一列中不存在,就设置为空
For i1 = 1 To UBound(arr)
If arr(i1, 1) <> "" Then
For j = 2 To UBound(arr, 2)
k = 0
For i2 = 1 To UBound(arr)
If arr(i1, 1) = arr(i2, j) Then
k = 1
Exit For
End If
Next i2
If k = 0 Then
arr(i1, 1) = ""
Exit For
End If
Next j
End If
Next i1
'现在第一列的非空元素就是结果,下面输出
For i1 = 1 To UBound(arr)
If arr(i1, 1) <> "" Then Debug.Print arr(i1, 1)
Next i1
End Sub
假如单元格区间不从a1开始怎么办?怎么能判断有多少行多少列?
从哪里开始就习惯程序里面的a1,现在程序的算法是从指定单元格的四周开始扩散,直到遇到空白为止,只要不把无关数据连在一起就成。