2017-10-03 1 views
1

Ich habe folgende Daten in einem ArrayExcel VBA Nächster Wert in Array

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

Ich möchte den nächsten Wert von meinem Array erhalten, wenn ich in eine Reihe stellen Range("A1")

+1

Wie denken Sie, dass Sie das Problem angehen sollten? – serakfalcon

+0

sir @serakfalcon das bin ich nicht sicher, Sir, darum bitte ich um Hilfe. verzeihen Sie mir – NewbieVB

Antwort

3

Versuchen Sie, diese

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 

Haben Sie dies von here.

+0

funktionierte perfekt Sir vielen Dank – NewbieVB

1

Sie können diesen VBA-Code auch versuchen.

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