
VBA変数をFunction.VLookupの戻り値から得たいのですが、
下記の記述だと「実行時エラー 1004 worksheetfunctionクラスの…」が出てしまいます。
Dim X As Long, i As Long
Dim t3 As Variant
X = 2 'Loop行数
i = 2 'Loop行数
Do Until Cells(i, 4).Value = ""
t3 = Application.WorksheetFunction.VLookup(Cells(X, 4) & 9, Sheets("時刻表").Columns("A:C"), 2, 0) '開始時刻
時刻表シート
A B C
検索値 開始 完了
79 18:30 20:30
89 18:30 20:30
99 21:30 22:30
109 22:30 23:30
・
・
・
ちなみにセルにvalueで返してみると反映されエラーにはならないです。
VBA素人で申し訳ありませんがご教授お願い致します。
No.2ベストアンサー
- 回答日時:
No.1です。
> そもそも「Application.WorksheetFunction.VLookup」で得た値を変数に置き換えること自体が無理なのでしょうか?
おかしいですね。
私の環境(Excel2016)では、質問者様の書き方では、t3でも、cellsでも当該エラーが発生します。
No.1の書き方だと、t3でも、cellsでも当該エラーは発生せず、正常に動作します。
※Cells(X, 4)には整数値が入力されているという前提です。
何度も考えてくださりありがとうございます。
ご回答くださったことを元に見直していたところ、そもそもの間違いに気づくことができました。
Cells(●,●).Valueで見直し確認していた時点ではCells(X, 4)に数値が反映されていたのでエラーにならず、t3へ変数として置き換えようとしていた時点ではCells(X, 4)に数値が入っておらず順序が間違っていたことがエラーの原因でした。
「※Cells(X, 4)には整数値が入力されているという前提です。」というアドバイスがなければ気づけませんでした。
本当にありがとうございました。また初歩的なミスで質問してしまいすみませんでした。
No.1
- 回答日時:
Cells(X, 4) & 9 の部分を
Cells(X, 4).Value * 10 + 9 としてみたらどうでしょう?
早速ご回答ありがとうございます。
試してみましたができませんでした。
私の説明が下手なのでうまく伝えられなくてすみません。
変数で置きたい「t3」のところを「Cells(●,●).Value」に変えるとちゃんと呼んでくるのですが、変数に置き換ようとするとエラーになってしまってうまくいきません。
そもそも「Application.WorksheetFunction.VLookup」で得た値を変数に置き換えること自体が無理なのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
お助けください!VBAのファイル...
-
String""から型'Double'への変...
-
UserForm1.Showでエラーになり...
-
【VBA】ワークブックを開く時に...
-
マクロで"#N/A"のエラー行を削...
-
VBAでfunctionを利用しようとし...
-
Excel vbaについての質問
-
VB2008 comboboxを連動させた...
-
インポート時のエラー「データ...
-
日付書式のString型からData型...
-
Filter関数を用いた結果、何も...
-
ApplicationとWorksheetFunctio...
-
【VBAエラー】Nextに対するFor...
-
On ErrorでエラーNoが0
-
ExecuteNonQueryメソッドの戻り値
-
VBでコンパイル エラー 変数...
-
ActiveCell.FormulaR1C1の変数
-
VBA エクセル で FIND でのエラ...
-
レコード登録時に「演算子があ...
-
UBoundに配列がありませんとエ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
【VBA】ワークブックを開く時に...
-
マクロで"#N/A"のエラー行を削...
-
文字列内で括弧を使うには
-
String""から型'Double'への変...
-
【Access】Excelインポート時に...
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
インポート時のエラー「データ...
-
ACCESSで値を代入できないとは?
-
VBA エクセル で FIND でのエラ...
-
Filter関数を用いた結果、何も...
-
レコード登録時に「演算子があ...
-
ApplicationとWorksheetFunctio...
-
Excel vbaについての質問
-
【VBAエラー】Nextに対するFor...
-
実行時エラー 438 の解決策をお...
-
「実行時エラー '3167' レコー...
おすすめ情報