Вы можете использовать WorksheetFunction.Match метод в сочетании с Match_type:=1
Так что, если вы определите список
Dim LookupList As Variant
LookupList = Array(0, 6, 12, 24, 36)
, вы можете искать свое значение с помощью
Dim InputValue As Long
InputValue = 1
LookupList(WorksheetFunction.Match(InputValue - 1, LookupList, 1) - 1)
Следующая демонстрационная программа выдаст следующий вывод:
Option Explicit
Public Sub Demo()
Dim LookupList As Variant
LookupList = Array(0, 6, 12, 24, 36)
Dim InputValue As Long
For InputValue = 1 To 40
'InputValue is the value you look for
Debug.Print InputValue , LookupList(WorksheetFunction.Match(InputValue - 1, LookupList, 1) - 1)
Next InputValue
End Sub
Вывод:
i looked up value
1 0
2 0
3 0
4 0
5 0
6 0
7 6
8 6
9 6
10 6
11 6
12 6
13 12
14 12
15 12
16 12
17 12
18 12
19 12
20 12
21 12
22 12
23 12
24 12
25 24
26 24
27 24
28 24
29 24
30 24
31 24
32 24
33 24
34 24
35 24
36 24
37 36
38 36
39 36
40 36