我实际上需要有关思考过程和选项的帮助,而不是真正的编码。
我希望用户输入他们的邮政编码。然后我需要查看邮政编码的范围。 编辑:因为我来自比利时,邮政编码是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
答案 0 :(得分:0)
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
你得到的是好的,这只是你最容易阅读/最容易维护的案例。你不应该注意到性能上的任何差异
答案 1 :(得分:0)
阅读各种评论我仍然不清楚是什么问题。我想你提供一个输入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中定义自动过滤器,并通过VBA将自动过滤器标准中的低端和上限输入。