- 帖子
- 10
- 主題
- 3
- 精華
- 0
- 積分
- 37
- 點名
- 15
- 作業系統
- windows 7
- 軟體版本
- office 2010
- 閱讀權限
- 10
- 註冊時間
- 2014-4-18
- 最後登錄
- 2025-2-24

|
Dear Sirs
想請教各位,我之前在知乎看到vba撰寫function
結果如下
https://zhuanlan.zhihu.com/p/41740899
它的程式如下,順便將我的解讀撰寫如下
Function 提取重覆(rg1 As Range, rg2 As Range)
Dim arr1, arr2
arr1 = Split(rg1, ",") '將長串數據1,按逗號拆分成一組數據
arr2 = Split(rg2, ",") '將長串數據2,按逗號拆分成一組數據
a = ""
For h = 0 To UBound(arr1) '逐個比對兩組數字
For i = 0 To UBound(arr2)
If arr1(h) = arr2(i) Then a = a & arr2(i) & "," '將兩組數據相同的部分留下,以","分隔相同數據,組成一連串字串
End If
Next
Next
Dim arr, d As Object '剔除结果中的重覆值
Set d = CreateObject("scripting.dictionary") '將d設為一個字典
arr = Split(Mid(a, 1, Len(a) - 1), ",") '將長串數據a,按逗號拆分成一組數據,順便將a字串最後一個逗號消除。
For i = 0 To UBound(arr)
d(arr(i)) = "" '不知道為什麼要將d(arr(i))設為空白
Next i
提取重复 = Join(d.keys, ",") '為什麼會用d.keys,看不懂
End Function
再麻煩各位大德,想不通,也查不太到資料,謝謝您。 |
|