プロが教える店舗&オフィスのセキュリティ対策術

前回も問い合わせさせていただいていますが 少し私の言っている問い合わせと意味合いがちがうのでもう一度投稿させていただきます。

    A      B     C      D
1 15001    15001       A社 本店
2 1500101  15001    01 A社 A店
3 15002   15002       B社 本店
4 1500202    15002 02       B社 B店
上記のようにSheet1があります。
 A列のセルは 式で B & CでSETしています。
ユーザーフォームのTextbox1は得意先コード textbox2は支店コード
textbox3に店名
textbox1とtextbox2を入力してコマンドボタンを押すとtextbox3に店名をsetすると言うことがしたいんですが支店コードの入っている店名はひっぱってくるのですが 支店コードのないものの店名が表示されません。
Private Sub CommandButton1_Click()
On Error GoTo ExitER
Set ADR = Worksheets("sheet1").Range("A1:D4")

TextBox3 = Application.WorksheetFunction.VLookup(TextBox1 & TextBox2, ADR, 4, False)
On Error GoTo 0
Exit Sub
ExitER:
MsgBox "一致するコードがありません"
On Error GoTo 0
End Sub

エラーの部分は前回の質問の時に教えて頂いたものです。

どうしてもわからないのでお分かりの方お教えください。




 

A 回答 (3件)

同じことを シートの数式では実現できているのでしょうか?



たとえば10行のA,B列にコードを入力 C列に数式とした場合に
=VLOOKUP( A10&B10, A1:D4, 4, False)
として #N/Aにならないのか確認してみましょう

どこで期待通りの値を取得していないのかチェックするのも必要ですよ
TextBox2をスペースで内容をつぶしているとか
予期しない行動しているのかも
    • good
    • 0
この回答へのお礼

ご回答有難うございます。

お返事遅くなりました。#1さんと#2さんのお教えでできました。

シート内でテストをしてみる事が必要なんですね。
勉強になりました。

お礼日時:2009/03/02 08:10

A1に次の式を設定してみてください


=B1&C1
フィルで下方向に
#1さんの回答を適用後は
=VALUE(B1&C1)
に変更してください
    • good
    • 0
この回答へのお礼

お返事おそくなりました。

セルを単純にプロパティを出して文字列にしてるだけではダメなんですね。

有難うございました。#1とhige_082さんの教えでできました。

お礼日時:2009/03/02 08:08

こんにちは。



テキストボックスに入力した会社コード、支店コードは見かけは数値でも実は文字列です。
セルに入力されている値は数値なのでしょう。
だから、数値と文字列の比較になってしまい、検索できないのではないでしょうか。

>TextBox3 = Application.WorksheetFunction.VLookup(TextBox1 & TextBox2, ADR, 4, False)



With Me
.TextBox3 = Application.WorksheetFunction.VLookup _
(Val(.TextBox1.Value & .TextBox2.Value), ADR, 4, False)
End With

Val関数で数値にしてやれば、うまくいきませんか。
    • good
    • 0
この回答へのお礼

お返事遅くなり誠に申し訳ありませんでした。
masa_019様の教えて下さったように処理したのにできませんでした。

#2さんのセルの式に変える事でできました。

有難うございました。

お礼日時:2009/03/02 08:05

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