都道府県コードを検索値とした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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sh 3 2022/10/19 11:57
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Excel(エクセル) VBA でvlookup エラーなどは削除したい 8 2022/12/30 04:03
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ビーリアルのユーザー名を変え...
-
パソコンのスクリーンセーバー...
-
VBScriptでExcel(2019)上のデー...
-
パイソンエラーについて
-
pythonエラー
-
C言語の入力した文字を反転させ...
-
pandasでsqlite3にテーブル作成...
-
C++のCreateFile関数で、ASCII...
-
VBA
-
1、Rstudioで回帰直線を求める...
-
VBA メモ帳の上書き保存がしたい
-
Accessで文字列のバイト数読み込み
-
(再質問)エクセルのマクロボ...
-
WinSCPで画像のように puttyを...
-
じゃんけんのプログラムを作っ...
-
rubyの正規表現について
-
プログラミング
-
教えてください
-
パイソンでテキストファイルが...
-
パイソンでpy ファイルと p...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ビーリアルのユーザー名を変え...
-
pandasでsqlite3にテーブル作成...
-
教えてください
-
pythonエラー
-
パイソンエラーについて
-
パイソンでpy ファイルと p...
-
1、Rstudioで回帰直線を求める...
-
プログラミング
-
パイソンのクラスについて
-
クリスタルレポートで困ってい...
-
VSコード
-
VBA
-
(再質問)エクセルのマクロボ...
-
プログラミング講師はまだ需要...
-
英数字を含む文字列(0-9,A-Z)...
-
7セグメント LED ディスプレイ ...
-
power BI クエリエディター 〇...
-
パイソンのクラス
-
やり 直し
-
100万件越えCSVから条件を満た...
おすすめ情報