現在、電話番号別にいくら料金が発生したのかという処理をVBAマクロで行っております。
普段は配列でデータを取得するのですが、Excel関数式の方が効率が良いとのご指摘があったので、Excel関数が実行できるWorksheetFunctionからVLookupを実行しました。
しかし、以下のエラーメッセージが表示されました。
実行時エラー'1004':
WorksheetFunctionクラスのVLookupプロパティを取得できません。
エラーコードの内容から参照先にデータがないという返事だったので、調べてみたのですが、
参照先にデータがあるものもはじかれました。
実行したコードは省略した形ではありますが、以下の通りになります。
sub 実行() WorkSheets("シート1").Select Dim key As String Dim i As Long key = Cells(2, 2).Value With Range("B2") .Offset(Columnoffset:=1).Value = WorksheetFunction.VLookup(key, Sheets("シート2").Range("B3:E1513"), 2) 'ここでエラー発生 .Offset(Columnoffset:=2).Value = WorksheetFunction.VLookup(key, Sheets("シート2").Range("B3:E1513"), 3) End With end Sub
コードを編集している時に一度はつながったのですが、エラー対応のためコードを弄っていたら繋がらなくなりました。
シート1
|ID|電話番号|社員名|社員番号|
|:--|:--:|--:|
||'08033334444||
シート2
|電話番号|社員名|社員番号|メールアドレス|
|:--|:--:|--:|
|関数式|関数式|関数式|関数式|
※個人情報に付き詳細は省略
シート2で値を表示させている関数式は以下の通りです。
Excel関数式
1=@IF(@INDEX(INDIRECT("シート3!f:f"),ROW()-2,1)<>"",INDEX(INDIRECT("シート3!f:f"),ROW()-2,1),"")
どのように対応すればよろしいでしょうか。
ご教授頂けると幸いです。
関数式だからエラーを起こすというのはありうることでしょうか?
変数keyをvariant型に宣言しても同様のエラーが発生します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/25 08:25
2020/03/25 09:13
2020/03/26 07:24