|
本帖最后由 lijian8003 于 2021-11-3 17:27 编辑
Sheet2
BA列 BB列
... ...
张三 5
... ...
李四 4
王五 7
... ...
赵六 7
王五 7
... ...
王五 7
Sheet1
AF2=4,AF3=1,AF4=2
1、现欲搜寻Sheet2 BB列中有哪些单元格,与Sheet1 AF2+AF3+AF4=7相同,并提取Sheet2 BA列同行对应单元格数值,依次写入Sheet1 BA1 BA2 BA3...(上例提取:王五 赵六 王五 王五)。
2、上例提取的 王五 赵六 王五 王五,欲去掉重复值,只保留王五 赵六。
两个宏代码恳请都贴出,以利于揣摩比较学习。
- Option Explicit
- Sub 搜寻()
- Dim x, i, k As Long
- Dim arr, arr2(1 To 100000, 1 To 1)
- x = Application.WorksheetFunction.Sum(Sheet1.Range("AF2:AF4"))
- arr = Sheet2.Range("ba1:bb" & Sheet2.[Bb100000].End(xlUp).Row)
- For i = 1 To UBound(arr)
- If arr(i, 2) = x Then
- k = k + 1
- arr2(k, 1) = arr(i, 1)
- End If
- Next
- Sheet1.[ba1].Resize(k, 1) = arr2
- End Sub
- Sub 去重()
- Dim dicc, arr, arr1, i%
- Set dicc = CreateObject("scripting.dictionary")
- arr = Sheet1.Range("ba1:ba" & Sheet1.[Ba100000].End(xlUp).Row)
- Sheet1.Range("ba1:ba100000").ClearContents
- For i = 1 To UBound(arr)
- dicc(arr(i, 1)) = ""
- Next
- Sheet1.[ba1].Resize(UBound(dicc.keys) + 1) = Application.Transpose(dicc.keys)
- End Sub
复制代码
|
|