いつもこちらの掲示板には大変お世話になっております。
現在VBAを勉強中の初心者です。皆様のおかげで毎日大変勉強になっております。
今回もどなたかのお知恵をお借りしたく思い、ご相談させていただきました。
文中に拙い部分も多々あるかと存じますが、何卒ご容赦いただけますと幸いです。
前提・実現したいこと
業務上で発生するデータ転記の作業の一部を、マクロで行えたらと思っております。
具体的には、管理番号を手動でシート①に入力してもらい、管理番号に連携した情報をシート②に転記したいです。
発生している問題・エラーメッセージ
管理番号をシート②に転記する部分まではうまくいくのですが、
最後のVLOOKUPの部分でエラーメッセージが出てしまいます。
ネットで先人様方がネット公開されている例を拝見し、何回かコードを書き換えたりもしましたが
毎度同じエラーを発生させてしまいます……
もしかしたら、Aセルの管理番号はDとEを組み合わせたものであり
範囲を取得する部分で値ではなく計算式を見ているからかもしれません。
問題の箇所に気づかれた方がおられましたら、お手数をお掛けしますが教えていただけませんでしょうか?
(検索および考えの甘い部分がありましたら申し訳ありません)
worksheetfunctionクラスのvlookupプロパティを取得できません
該当のソースコード
Sub ①シートに転記するマクロ() Dim マスデ As Workbook Set マスデ = ThisWorkbook Dim 最終行 As Long 最終行 = マスデ.Worksheets("情報_01").Cells(Rows.Count, 1).End(xlUp).Row '管理番号の最終行を取得 Dim 管理番号 As String 管理番号 = Application.InputBox("管理番号を入力してください") '「管理番号」の入力 Dim Target As Range Set Target = Range(Cells(2, 1), Cells(最終行, 1)).Find(What:=管理番号, LookIn:=xlValues, LookAt:=xlWhole) If Target Is Nothing Then '「管理番号」がなかった場合は終了 MsgBox "管理番号が存在しません" Exit Sub End If Workbooks.Open Filename:="C:\ひな形.xlsx" Dim シート As Worksheet 'ひな形のシートを開く Set シート = Worksheets(1) シート.Activate With ActiveSheet .Range("A2").Value = 管理番号 .Range("B2").Value = Application.WorksheetFunction.VLookup(管理番号, マスデ.Worksheets("情報_01").Range("A1:C100"), 2, False) '計算結果を検索する End With End Sub
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/16 14:23