
都道府県コードを検索値としたVLOOKUPでエラーになります。
Sheet1のA列に検索値の都道府県コード、B列に検索結果を表示させるため、Sheet2のA列に都道府県コード、B列に都道府県名の検索範囲があります。
下記のような記述をしていますがエラーになってしまいます。
Sub vlookup()
Dim workSh, prefSh As Worksheet
Set workSh = ThisWorkbook.Worksheets("Sheet1")
Set prefSh = ThisWorkbook.Worksheets("Sheet2")
'検索範囲を指定する
Dim prefRng As Range
Set prefRng = Range(prefSh.Cells(2, 1), prefSh.Cells(48, 2))
Dim workEndR, workTmpR As Long, tmpStr As String
workEndR = workSh.Cells(Rows.Count, 1).End(xlUp).Row
'VLookupでSheet1に入力された都道府県コードから、Sheet2の指定した範囲から都道府県名を求める
'発見できなかった場合エラーとなりマクロが停止するので、On Errorステートメントで制御する
For workTmpR = 2 To workEndR
tmpStr = workSh.Cells(workTmpR, 1).Value
On Error Resume Next
workSh.Cells(workTmpR, 2).Value = Application.WorksheetFunction.vlookup(tmpStr, prefRng, 2, False)
If Err <> 0 Then
workSh.Cells(workTmpR, 2).Value = "ERROR"
Err.Clear
End If
Next
End Sub
問題の解決にお知恵を貸してください。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
こんにちは
>下記のような記述をしていますがエラーになってしまいます。
エラーの状況が明確にわかりませんが、勝手な推測で、セルの表示が「ERROR」となるということと仮定しました。
もしそうであるなら、次の手順を試してみてください。
1)Application.WorksheetFunction.vlookup(
↓ ↓
Application.VLookup(
に変更してみる。
この結果、セルに検索結果が表示されるか、あるいは、表示内容(の一部)が「#N/A」に変わるのではないかと推測します。
2)表示が「#N/A」になる場合の対処として
tmpStr As String → tmpStr
に変更してみる。
うまくいけば、上記の(両方又は一方の)対処で表示されるのではないかと想像します。
※ 以下は、別法としてこんなのもあるよというご参考までに。
(結果的には、ほぼ同じ処理になります)
Sub Sample()
Const workSh = "Sheet1"
Const prefSh = "Sheet2"
With ThisWorkbook.Worksheets(workSh)
With Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp)).Offset(0, 1)
.Formula = "=Vlookup(A2," & prefSh & "!A$2:B$48,2,0)"
.Value = .Value
End With
End With
End Sub
ありがとうございました。
はじめて「教えてgoo」に質問してみましたが本当に解決してくれる方がいることに驚いています。
どこかに助けてくれる方がいるとは、世の中捨てたものでは無いと実感しました。今後ともよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ruby OpenURI::Meta
-
Ruby require ライブラリー
-
Accessで文字列のバイト数読み込み
-
【メモリ不足で落ちる(python)】
-
1、Rstudioで回帰直線を求める...
-
VBScriptでExcel(2019)上のデー...
-
クリスタルレポートで困ってい...
-
パイソンプログラム
-
7セグメント LED ディスプレイ ...
-
ruby while式
-
ruby loopメソッド 変数(再喝)
-
ruby 配列
-
ruby loopメソッド 変数
-
ruby クラス・オブジェクト・イ...
-
ルビー言語 ライブラリー 追記
-
ruby raise句
-
ruby begin句
-
ruby ensure句
-
ルビー言語 ライブラリー(再々...
-
ルビー言語 csvファイル 続き(...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Ruby require ライブラリー
-
ruby loopメソッド 変数(再喝)
-
(再質問)エクセルのマクロボ...
-
ruby OpenURI::Meta
-
ruby while式
-
ruby loopメソッド 変数
-
1、Rstudioで回帰直線を求める...
-
パソコンのスクリーンセーバー...
-
ビーリアルのユーザー名を変え...
-
ruby 配列
-
C言語の入力した文字を反転させ...
-
ruby クラス・オブジェクト・イ...
-
ルビー言語 ライブラリー 追記
-
100万件越えCSVから条件を満た...
-
ルビー言語 csvファイル 続き
-
Ruby newメソッド
-
教えてください
-
ruby raise句
-
英数字を含む文字列(0-9,A-Z)...
-
pythonエラー
おすすめ情報