Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7222 / 13644 ツリー ←次へ | 前へ→

【40440】VLOOKUPについて tatuya 06/7/13(木) 18:32 質問[未読]
【40449】Re:VLOOKUPについて ichinose 06/7/13(木) 22:54 質問[未読]
【40462】感謝×2:VLOOKUPについて tatuya 06/7/14(金) 9:56 お礼[未読]

【40440】VLOOKUPについて
質問  tatuya E-MAIL  - 06/7/13(木) 18:32 -

引用なし
パスワード
   FormのComboエラー番号の値が変わったときに
その値を利用し範囲名のエラー内容から
Vlookupを使いエラー番号に対応するエラー内容を
抜き出し、FormのText原因.Textに自動転記したいと
思うのですが2.の問題箇所で以下のエラーが出ます。
対処法をお教え下さい。

『1004 Worksheetfunction クラスのVLookUpプロパティを
所得できません』

1.範囲名 エラー内容のシート−−−−−−−−−
エラー番号  エラー内容
水不足      本体に浴水が無い
H℃      本体に50℃以上の浴水を吸い込んだ
5500      UVランプが寿命を超えた(約3.5年)
5517      運転停止中にUVランプの電気センサが動いた
5520      ヒーターのサーモスタットが繰り返し動作した
5521      UVランプのコネクタ接続不良
5522      UVランプの接続不良
−−−−−−−−−−−−−−−−−−−−−−−

2.−−−−−−−−−−−−−−−−−−−−−−−
Private Sub Comboエラー番号_Change()
  Dim MyRange As Range
  Dim Result As String
  
  Set MyRange = Worksheets("エラー項目").Range("エラー内容")
  Result = "#N/A!"
  On Error Resume Next
  Result = Application.WorksheetFunction.VLookup(Comboエラー番号.Value, MyRange, 2, False) <--☆問題箇所☆
  MsgBox (Err.Number & " " & Err.Description)
   On Error GoTo 0
  Text原因.Text = Result
End Sub
−−−−−−−−−−−−−−−−−−−−−−−−−−−−

【40449】Re:VLOOKUPについて
質問  ichinose  - 06/7/13(木) 22:54 -

引用なし
パスワード
   ▼tatuya さん:
こんばんは。


>FormのComboエラー番号の値が変わったときに
>その値を利用し範囲名のエラー内容から
>Vlookupを使いエラー番号に対応するエラー内容を
>抜き出し、FormのText原因.Textに自動転記したいと
>思うのですが2.の問題箇所で以下のエラーが出ます。
>対処法をお教え下さい。
>
>『1004 Worksheetfunction クラスのVLookUpプロパティを
>所得できません』
>
>1.範囲名 エラー内容のシート−−−−−−−−−
>エラー番号  エラー内容
>水不足      本体に浴水が無い
>H℃      本体に50℃以上の浴水を吸い込んだ
>5500      UVランプが寿命を超えた(約3.5年)
>5517      運転停止中にUVランプの電気センサが動いた
>5520      ヒーターのサーモスタットが繰り返し動作した
>5521      UVランプのコネクタ接続不良
>5522      UVランプの接続不良
>−−−−−−−−−−−−−−−−−−−−−−−
>
>2.−−−−−−−−−−−−−−−−−−−−−−−
>Private Sub Comboエラー番号_Change()
>  Dim MyRange As Range
>  Dim Result As String
   dim fvalue as variant  
>  Set MyRange = Worksheets("エラー項目").Range("エラー内容")
'  本来は、この「エラー内容」という範囲名のセル範囲も記述して下さい  
'  この「エラー内容」という範囲名に間違いがないとすると・・     
'  セル範囲の書式設定が問題なのだと思います。
  
>  Result = "#N/A!"
>  On Error Resume Next
   with Comboエラー番号
    fvalue=iif(isnumeric(.value),val(.value),.value)  
    Result = Application.WorksheetFunction.VLookup(fvalue, MyRange, 2, False)
    end with 
>  MsgBox (Err.Number & " " & Err.Description)
>   On Error GoTo 0
>  Text原因.Text = Result
>End Sub
>−−−−−−−−−−−−−−−−−−−−−−−−−−−−
これで試してみて下さい

【40462】感謝×2:VLOOKUPについて
お礼  tatuya E-MAIL  - 06/7/14(金) 9:56 -

引用なし
パスワード
   一発解決、すばらしい。うーんワークシート上では
検索文字の入るセル指定して何ともなくできるのですが
VBAでは、数値なのか文字なのか曖昧すぎてstring変数では
荷が重すぎたのですね。明快な回答ありがとう御座いました。
≦(._.)≧≦(._.)≧

−−−−−−−−−−−−−−−−−−−−−−−−−−−−
▼ichinose さん:
>▼tatuya さん:
>こんばんは。
>
>
>>FormのComboエラー番号の値が変わったときに
>>その値を利用し範囲名のエラー内容から
>>Vlookupを使いエラー番号に対応するエラー内容を
>>抜き出し、FormのText原因.Textに自動転記したいと
>>思うのですが2.の問題箇所で以下のエラーが出ます。
>>対処法をお教え下さい。
>>
>>『1004 Worksheetfunction クラスのVLookUpプロパティを
>>所得できません』
>>
>>1.範囲名 エラー内容のシート−−−−−−−−−
>>エラー番号  エラー内容
>>水不足      本体に浴水が無い
>>H℃      本体に50℃以上の浴水を吸い込んだ
>>5500      UVランプが寿命を超えた(約3.5年)
>>5517      運転停止中にUVランプの電気センサが動いた
>>5520      ヒーターのサーモスタットが繰り返し動作した
>>5521      UVランプのコネクタ接続不良
>>5522      UVランプの接続不良
>>−−−−−−−−−−−−−−−−−−−−−−−
>>
>>2.−−−−−−−−−−−−−−−−−−−−−−−
>>Private Sub Comboエラー番号_Change()
>>  Dim MyRange As Range
>>  Dim Result As String
>   dim fvalue as variant  
>>  Set MyRange = Worksheets("エラー項目").Range("エラー内容")
>'  本来は、この「エラー内容」という範囲名のセル範囲も記述して下さい  
>'  この「エラー内容」という範囲名に間違いがないとすると・・     
>'  セル範囲の書式設定が問題なのだと思います。
>  
>>  Result = "#N/A!"
>>  On Error Resume Next
>   with Comboエラー番号
>    fvalue=iif(isnumeric(.value),val(.value),.value)  
>    Result = Application.WorksheetFunction.VLookup(fvalue, MyRange, 2, False)
>    end with 
>>  MsgBox (Err.Number & " " & Err.Description)
>>   On Error GoTo 0
>>  Text原因.Text = Result
>>End Sub
>>−−−−−−−−−−−−−−−−−−−−−−−−−−−−
>これで試してみて下さい

7222 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free