试试: Public Function mycha(ByVal rng As Range) Dim ds As New Dictionary arr1 = Sheet1.Range("a2:b7") For i = 1 To 6 ds(arr1(i, 2)) = arr1(i, 1) Next i mycha = ds(rng.Value) Set ds = Nothing End Function Public Function mycha1(ByVal rng As Range) Dim ds As New Dictionary arr1 = Sheet1.Range("a2:b7") If WorksheetFunction.IsNumber(rng) Then For i = 1 To 6 ds(arr1(i, 2)) = arr1(i, 1) Next i mycha1 = ds(rng.Value) Else For i = 1 To 6 ds(arr1(i, 1)) = arr1(i, 2) Next i mycha1 = ds(rng.Value) End If Set ds = Nothing End Function 借用3楼,将函数2改成: Public Function mycha1(ByVal rng As Range) Dim ds As New Dictionary arr1 = Sheet1.Range("a2:b7") For i = 1 To 6 ds(arr1(i, 2)) = arr1(i, 1) ds(arr1(i, 1)) = arr1(i, 2) Next i mycha1 = ds(rng.Value) Set ds = Nothing End Function
[此贴子已经被作者于2007-10-9 10:19:42编辑过] |