Public Function DnLook(区域, 取值列, 查找值1, 对应列1, Optional 查找值2, Optional 对应列2) As String
'2021/2/19编写
'在VLOOKUP查找有重复值的情作者: Dwy123 時間: 2025-9-9 14:22
本帖最後由 Dwy123 於 2025-9-9 14:25 編輯
Public Function DnLook(区域, 取值列, 查找值1, 对应列1, Optional 查找值2, Optional 对应列2) As String
'2021/2/19编写
'在VLOOKUP查找有重复值时可加一条件查找
'对应列1只有一个查找值1时只用查找值1查找,当对应列1有重复查找值1时,加用查找值2在对应列2查找
Dim j As Integer
Dim k As Integer
Dim co As New Collection
Dim reSolt As String
For j = 1 To 区域.Rows.Count
'For k = 1 To 区域.Columns.Count
If 区域(j, 对应列1) = 查找值1 Then
reSolt = reSolt & 区域(j, 取值列) & vbCrLf
co.Add j
End If
'Next k
Next j
If co.Count = 1 Then
DnLook = Left(reSolt, Len(reSolt) - 2) '去除最后的回车换行
Exit Function
End If
If Not IsMissing(查找值2) And Not IsMissing(对应列2) Then
reSolt = ""
For Each d In co
If 区域(d, 对应列2) = 查找值2 Then
reSolt = reSolt & 区域(d, 取值列) & vbCrLf
'co2.Add D '又有参数3时加
End If
Next
End If
DnLook = Left(reSolt, Len(reSolt) - 2) '去除最后的回车换行
End Function