VBA:从列表中返回第二小的数字

使用: Excel 2010,VBA

目标:从列表中返回次数最less的数字(无论是带小数的整数还是实数)

示例数据集(我希望它返回10.123):

11

9

26.0

37.123

45

10.123

问题:我遇到了几个线程,解释了如何做到这一点,但似乎每件事都只涉及到整数。 我需要这个工作的整数和实数(例如,1和1.2345)的值列表。

我试过的(但我认为这只适用于整数):

For dblX = LBound(arrFwdTimes) To UBound(arrFwdTimes) - 1 For dblY = dblX + 1 To UBound(arrFwdTimes) If arrFwdTimes(dblX) > arrFwdTimes(dblY) Then strT = arrFwdTimes(dblY) arrFwdTimes(dblY) = arrFwdTimes(dblX) arrFwdTimes(dblX) = strT End If Next dblY Next dblX 

你可以使用下面的来实现你想要的。 这与使用SMALL公式函数相同

 ans = WorksheetFunction.Small(YourRange,2)