Мне действительно нужна помощь в процессе мышления и параметрах, а не в самом коде.
Я хочу, чтобы пользователи вводили свой почтовый индекс. Затем мне нужно посмотреть, в каком диапазоне находится почтовый индекс.
Изменить: поскольку я из Бельгии, почтовый индекс – 4 номера (1000, 1500, 8380,…)
Zip code: 2800
Range between;
1000-1999
2000-2999
3000-3999
4000-4999
If the range is between one of the following, display all zip codes for that range
Else do nothing
Я придумал структуру If, Else. Но мне интересно, есть ли лучший вариант?
Zip code: 2800
If zip code > 3999 then
'Select all zipcodes within this range
'Range(" .. ").Copy Destination:=Sheets...
ElsIf zip code > 2999 then
'Select all zipcodes within this range
'Range(" .. ").Copy Destination:=Sheets...
Elsif zipcode ....
Спасибо.
@@@@@@@@@@@@@
Openshac
Я придумал это.
x = 1
Sheets("Reference").Select
For i = 1 to 115
If Range("A" & i).value > 5999 and Range("A" & i).value < 6000 then
Range("A" & i).copy Destination:=Sheets("Design").Range("A" & x)
x = x + 1
End if
Next i
Как насчет оператора switch?
Select Case zipCode
Case 1000 To 1999
'Do something
Case 2000 To 2999
'Do something
Case 3000 To 3999
'Do something
Case 4000 To 4999
'Do something
Case Else
' Do nothing
End Select
У вас все в порядке, это всего лишь пример того, что вам наиболее читаемо/проще для вас. Вы не должны замечать разницу в производительности
Читая различные комментарии, я до сих пор не понял, в чем вопрос. Я хочу, чтобы вы предоставили входной ZIP (ARG = 2800), и вы хотите отобразить все ZIP-таблицы данных, где тысяча цифр соответствует тысячам цифр ввода, другими словами
ZIPdata.ZIP BETWEEN INT(ARG / 1000) * 1000 AND INT(ARG / 1000) * 1000 + 999
без какого-либо VBA вы можете определить расширенный фильтр с вычисленным критерием на основе формулы выше, формула критерия будет
=AND(B9>=$B$2;B9<=$E$2)
B9 being the ZIP in your first data record (not the heading)
B2 being the lower bound using above formulae
E2 being the upper bound using above formulae
В качестве альтернативы вы можете определить Автофильтр через ZIP и фид lowe и верхнюю границу в критерии автофильтра через VBA.