
Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sheet1のB2セルに=VLOOKUP(A2,Sheet2!B:D,3,FALSE)、B3セルに=VLOOKUP(A3,Sheet2!B:D,3,FALSE)と下にVLOOKUP関数が並び、Sheet2のメアド一覧を参照しています。VBA化で下記コードでエラー「WorksheetFunctionクラスのVlookupプロパティを取得できません。」となり、デバック
「 Sht1.Cells(i, 2) = Application.WorksheetFunction. _
VLookup(Target, MyArea, 3, False)」で止まっています。初心者のため理解できないので解決策を教えていただけませんでしょうか。お願いします。
Sub Vlookup関数で値取得()
Dim i As Long
Dim Target As Variant
Dim Sht1 As Worksheet
Dim Sht2 As Worksheet
Dim MyArea As Range
'シートを変数格納
Set Sht1 = Sheets("Sheet1")
Set Sht2 = Sheets("Sheet2")
'列を参照範囲に格納
Set MyArea = Sht2.Range("B:D")
'2~600行目をループ
For i = 2 To 600
'「名前」を取得
Target = Sht1.Cells(i, 1).Value
Sht1.Cells(i, 2) = Application.WorksheetFunction. _
VLookup(Target, MyArea, 3, False)
Next i
End Sub

No.1ベストアンサー
- 回答日時:
Sheet1のA列で2行~600行まで繰り返していますが、
途中で空白になっている行がありませんか?
空白行に達したら、打ち切るようにします。
Target = Sht1.Cells(i, 1).Value
の次に、以下の行を追加してください。
If Target = "" Then Exit For
追伸:Sheet1のコードがSheet2にない場合、このエラーが発生します。
必ず、Sheet1のコードがSheet2にあることを確認してから行ってください。
ありがとうございます。止まらずに動きました。
もしコードがない場合、ポップアップで無いコードを表示するにはどう記述したらよいでしょう。お時間あるときにご教示いただけると助かります。
No.3
- 回答日時:
あまり進めてはいけない方法かもしれませんが
最後までやりきるなら
Target = Sht1.Cells(i, 1).Value
On Error Resume Next ’一行加える
Sht1.Cells(i, 2) = Application.WorksheetFunction. _
VLookup(Target, MyArea, 3, False)
No.2
- 回答日時:
こんにちは
>理解できないので解決策を教えていただけませんでしょうか。
原因と、解決法はNo1様の回答にある通りと思います。
シート関数を使うだけなら、マクロでいろいろやるよりもエクセルに計算させてしまう方が簡単な記述で済みます。
以下は、別法での一例です。
Sub Sample()
With Worksheets("Sheet1").Range("B2:B600")
.FormulaLocal = "=IFERROR(VLOOKUP(A2,Sheet2!B:D,3,0),"""")"
.Value = .Value
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
隣の枝がはみ出してきたら切ってもいい?最もやってはいけないことは?
「隣の木が越境してきて困るが、勝手に切ってはいけないと聞くし…」そう思っている方も多いだろう。実は、2023年4月1日に民法が改正され、この「越境枝」のルールが大きく変わった。 教えて!gooでも「境界から出て...
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Cellsのかっこの中はどっちが行...
-
Changeイベントでの複数セルの...
-
VB2005EE:DataGridViewでチェ...
-
Worksheets メソッドは失敗しま...
-
DataGridViewに空白がある場合...
-
vba 2つの条件が一致したら...
-
空白セルをとばして転記
-
Excelで、あるセルの値に応じて...
-
VBAのFind関数で結合セルを検索...
-
VBマクロ 色の付いたセルを...
-
Worksheet_Change(ByVal Target...
-
別シートから年齢別の件数をカ...
-
IIF関数の使い方
-
VBAを使って検索したセルをコピ...
-
VBAで指定範囲内の空白セルを左...
-
C# dataGridViewの値だけクリア
-
Excel VBA の Copy,Paste の質問
-
rowsとcolsの意味
-
連続しない複数行へのデータ複...
-
EXCEL VBA 元データが略称、参...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA sum ワークシートChange
-
Excelで、あるセルの値に応じて...
-
Worksheets メソッドは失敗しま...
-
URLのリンク切れをマクロを使っ...
-
【VBA】2つのシートの値を比較...
-
rowsとcolsの意味
-
Cellsのかっこの中はどっちが行...
-
vba 2つの条件が一致したら...
-
IIF関数の使い方
-
B列の最終行までA列をオート...
-
VBAでのリスト不一致抽出について
-
複数の列の値を結合して別の列...
-
VBA 何かしら文字が入っていたら
-
VBAのFind関数で結合セルを検索...
-
エクセル 2つの表の並べ替え
-
DataGridViewに空白がある場合...
-
文字列の結合を空白行まで実行
-
データグリッドビューの一番最...
-
【VBA】複数行あるカンマ区切り...
-
ExcelVBAでテキストルーレット...
おすすめ情報