2017-05-05 23 views
0

使用返回第二小數字: Excel 2010中,VBAVBA:從列表

目標:返回第二小的數字(無論是整數或小數點實數)從列表

例如數據集(我想它返回10.123):

26.0

37.123

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 
+1

你能不與Excel公式'=小(yourRange,2)'實現這一目標? – Tom

+0

@Tom,非常感謝您的回覆。我可以,但是寧願在VBA腳本中完全做它,因爲它將作爲變量傳遞以供額外使用。我的道歉 - 我沒有提到這只是一個較大代碼的片段。 – Chase

+2

您可以在VBA使用worksheetfunctions也,所以'ANS = WorksheetFunction.Small(YourRange,2)'不要重新發明輪子,當你不需要 – Tom

回答

3

您可以使用以下方法來實現你想要的。這是與使用SMALL式函數

ans = WorksheetFunction.Small(YourRange,2) 
+0

再一次,非常感謝。這對我有用,現在我也瞭解VBA中的工作表函數。謝謝。 – Chase