Excel VBA数组中最接近的值

我有一个数组中的以下数据

Dim numbers () numbers = Array(1, 2083, 3050, 4030, 6000) 

我想从我的数组中获得最接近的值,当我把一个数字在Range("A1")

尝试这个

 Sub Demo() Dim numbers(), arrItem, maxItem, result, searchNum Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Sheet1") 'change Sheet1 to your data sheet searchNum = ws.Range("A1") 'search number numbers = Array(1, 2083, 3050, 4030, 6000) maxItem = Application.Max(numbers) 'get max of array item For Each arrItem In numbers 'loop through each array item If Abs(searchNum - arrItem) < maxItem Then maxItem = Abs(searchNum - arrItem) result = arrItem End If Next arrItem MsgBox result 'display result End Sub 

从这里得到这个。

你也可以试试这个VBA代码。

 Sub closestnumb() Dim numbers() numbers = Array(1, 2083, 3050, 4030, 6000) t = WorksheetFunction.Max(numbers) For Each r In numbers u = Abs(r - Range("a1").Value) If u < t Then t = u a = r End If Next MsgBox a End Sub