アプリ版:「スタンプのみでお礼する」機能のリリースについて

困りました、、

下のような表から検索したいのですが
うまく取り出せません


~63,000
63,000~73,000
73,000~83,000
83,000~93,000
93,000~101,000
101,000~107,000
107,000~114,000
114,000~122,000
122,000~130,000
130,000~138,000
138,000~146,000
146,000~155,000
155,000~165,000
165,000~175,000
175,000~185,000
185,000~195,000
195,000~210,000
210,000~230,000
230,000~250,000
250,000~270,000
270,000~290,000


たとえばこの中から225000が当てはまるところを探したいのです

今はselect caseで一つずつ判定しているのですが
これではコードが果てしなく長くなってしまいます

もっとスマートなコードはないのでしょうか??
よろしくお願いします<m(__)m>

A 回答 (4件)

ある列の1つ1つのセルに上記の範囲情報が載っているということですか?



自分だったら以下のようにします。
 1)セルの範囲情報を文字列として取得する(例:270,000~290,000)
 2)「~」をキーに文字列を分割し、「~」の前の情報(270,000)と後の情報(290,000)を
  それぞれ変数に取得する
 3)入力したデータが上記の前情報と後情報の範囲内にあるか判断する
 4)これを、範囲情報が設定されているセル分繰り返す。
   (3)で条件に一致するものがあれば検索処理は終了)

この回答への補足

数字ごと一つのセル使ってます

それだとコードがながくなってしまいますよね?

補足日時:2014/05/28 12:54
    • good
    • 0

今どのような感じのコードを書いているのか記載してください。


Excel使わずにVBAってあるんでしたっけ?
Excelだったらバージョンも記載してください。

この回答への補足

Case Is < .Range("F6")
wskyu.Range("H24") = .Range("L6")

Case .Range("D7") To .Range("F7")
wskyu.Range("H24") = .Range("L7")

Case .Range("D8") To .Range("F8")
wskyu.Range("H24") = .Range("L8")

Case .Range("D9") To .Range("F9")
wskyu.Range("H24") = .Range("L9")

Case .Range("D10") To .Range("F10")
wskyu.Range("D24") = .Range("H10")
wskyu.Range("H24") = .Range("L10")

Case .Range("D11") To .Range("F11")
wskyu.Range("D24") = .Range("H11")
wskyu.Range("H24") = .Range("L11")

Case .Range("D12") To .Range("F12")
wskyu.Range("D24") = .Range("H12")
wskyu.Range("H24") = .Range("L12")

Case .Range("D13") To .Range("F13")
wskyu.Range("D24") = .Range("H13")
wskyu.Range("H24") = .Range("L13")

Case .Range("D14") To .Range("F14")
wskyu.Range("D24") = .Range("H14")
wskyu.Range("H24") = .Range("L14")

Case .Range("D15") To .Range("F15")
wskyu.Range("D24") = .Range("H15")
wskyu.Range("H24") = .Range("L15")


こんな感じです

excel2007です

補足日時:2014/05/28 12:55
    • good
    • 0

探した後どうしたいのですか?こんな感じ?

「VBA 検索」の回答画像3

この回答への補足

探せたらそれと同列にある値を抜き出したいです

補足日時:2014/05/28 12:56
    • good
    • 0

表を作り直してVlookupで十分です。


VBAでやるなら↓
MsgBox Application.WorksheetFunction.VLookup(225000, Range("A:B"), 2)
「VBA 検索」の回答画像4
    • good
    • 0
この回答へのお礼

わかりやすく写真までつけてくださってありがとうございます!!
おかげでコードがすっきりしました!(^^)!

お礼日時:2014/05/28 14:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!