No.4ベストアンサー
- 回答日時:
まぁ,ヒトによって趣味もありますが,自分なら
dim lastRow as long
lastrow = range("A65536").end(xlup).row
range("E1") = application.vlookup(range("D1").value, range("A1:C" & lastrow), 2, false)
ぐらいにします。
どこをどう調べたら「一番下」を確定できるのか,実際のデータシートを見ながらマクロを書きます。
#「変数」にせずにrange("A:C")を検索対象範囲にして計算させてしまうのも,たしかに一つの合理的な解決策と思います。
ただVLOOKUP関数のFALSEの計算は「重たい」のが常ですので,可能なら「A1:C4」のように範囲を指定して計算させた方がモアベターと一般に考えられています。
マクロを使うなら「範囲を調べて限定して計算させる」のも,上述したようにその旨命令を書き足すだけのことですから。
ご回答ありがとうございます。
lastrow=Cells.SpecialCells(xlLastCell).Rowにして
動きました。
この記述を参考に利用させて頂きます。
No.3
- 回答日時:
>VLOOKUPの範囲を変数で取得したい
⇒ワークシート関数ならば、Range("A:C")で十分ではないでしょうか
ところで、このVLOOKUPコードの場合、見つからないとマクロが中断し、以降の処理が
できません。
対応としては、次の様にコードを変更すれば、エラー(#N/A)が戻されるので以下のような
方法があります。
resurt = Application.VLookup(Range("D1"), Range("A:C"), 2, False)
If IsError(result) Then
エラー処理
else
Range("E1") = result
因みにこの程度の抽出なら自作してみるのは如何でしょうか。
一例です。
For i = 1 To cells(Rows.Count,"A").End(Xlup).Row
If Cells(i,"A") = Cells(1,"D") Then
Cells(1,"E") = Cells(i,"A").Offset(0,1).Value
Exit For
Endif
Next
ご回答ありがとうございます。
vlookupでわざとエラーをさせたところ、途中で中断しました。
エラーした際の処理も参考にさせて頂きました。
No.2
- 回答日時:
"A1:C4"
は、文字列なので。String型の文字列で扱えば良いです。例えば
Dim strRANGE As String
strRANGE = "A1:C4"
Range("E1") = Application.WorksheetFunction.VLookup(Range("D1"), Range(strRANGE), 2, False)
なら、同じ意味の式になりますね。
strRANGE = "C4"
Range("E1") = Application.WorksheetFunction.VLookup(Range("D1"), Range("A1:" & strRANGE), 2, False)
とすれば、"C4"だけを変数に出来ます。
ご回答ありがとうございます。
C4が変数になりますが、データが増えるのでC5 C6・・・と変数も増える事を
質問に明確に書かなかったのでお詫びします。
ありがとうございました。
No.1
- 回答日時:
>検索範囲の("A1:C4")の『C4』を変数に変更はできますでしょうか。
できます。
dim Hanni as string
とでも定義して、どこかで
Hanni = "A1:C4"
と代入しておいて
Range("E1") = Application.WorksheetFunction.VLookup(Range("D1"), Range(Hanni), 2, False)
にすれば良いです。
>(データは増える予定ですなので)
データが増える為に行数が不定で、かつ、データが入っている下に別の表が無いのであれば、変数にする必要は無く、単に
Range("E1") = Application.WorksheetFunction.VLookup(Range("D1"), Range("A:C"), 2, False)
として、行を指定しなければ良いだけですが、これでは駄目なのですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sh 3 2022/10/19 11:57
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) エクセル VBA 条件付き書式 簡略化したい 2 2022/06/02 17:46
- Excel(エクセル) マクロを簡潔にしたい 6 2022/09/16 10:37
- Visual Basic(VBA) ExcelのVBAで教えてください。 Vlookupで、X X.value = applicatio 1 2022/12/26 13:40
- Excel(エクセル) Excel_マクロ_複数のシートのVLOOKUPで表示された#N/A以外に色付けをしたいです 1 2023/02/16 22:37
- Excel(エクセル) エクセルのvlookupについて質問です 3 2023/01/05 15:15
- Visual Basic(VBA) worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応 3 2022/12/27 22:27
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
VLookupで参照する範囲を変数で渡したい
Access(アクセス)
-
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
vlookup関数の引数を変数で指定することはできますか?
Excel(エクセル)
-
-
4
UserForm1.Showでエラーになります。
工学
-
5
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
6
VLOOKUP関数:別シートにある参照範囲が変動する場合
Access(アクセス)
-
7
VBA R1C1形式で変数の入力について
Visual Basic(VBA)
-
8
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
9
Count Ifのセルの範囲指定に変数を使用したい
Visual Basic(VBA)
-
10
エクセルVBAでオートフィルター最上行を取得するには
Excel(エクセル)
-
11
VBA WorksheetFunction.VLookupとoffsetプロパティー
Excel(エクセル)
-
12
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
13
【Excel VBA】データ貼り付け先のシート名選択
Excel(エクセル)
-
14
エクセルで複数のシートのクリアをしたいです
Excel(エクセル)
-
15
EXCELマクロでワイルドカードを使ったオートフィルタ処理の方法がわからない
Excel(エクセル)
-
16
VBAで変数に関数式の結果をセットする場合
Excel(エクセル)
-
17
VBAでダブルコーテーション入りの数式をセルにセットしたい
Visual Basic(VBA)
-
18
VBA 見つからなかった時の処理
Excel(エクセル)
-
19
VBAでセル入力の数式に変数を用いたい
Excel(エクセル)
-
20
excel vbaでvlooupの変数がわかりません。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelの不要な行の削除ができな...
-
複数シートからデータを拾って...
-
エクセルファイルのシート毎の容量
-
Excelでシートの違うデータでグ...
-
VBAで CTRL+HOMEの位置へ移動...
-
シート削除して同名シート追加...
-
EXCEL の表を一行ずつシートに...
-
Excelで日付変更ごとに、自動的...
-
別々のシートの表をピボットテ...
-
EXCEL 複数行のデータを1行にま...
-
EXCELで2つのファイルから重複...
-
エクセルで、異なる複数のブッ...
-
マクロ 特定のシート以外を削...
-
エクセルで入力シートとデータ...
-
【エクセルマクロ】複数シート...
-
エクセルで複数の条件を抽出し...
-
AccessからVBAでExcellシー...
-
エクセル2013 散布図の合体につ...
-
LiberaOfficeでグラフを別シー...
-
エクセルVBAで、特定文字から始...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数シートからデータを拾って...
-
エクセルファイルのシート毎の容量
-
Excelでシートの違うデータでグ...
-
excelの不要な行の削除ができな...
-
シート削除して同名シート追加...
-
Excelで日付変更ごとに、自動的...
-
EXCELで2つのファイルから重複...
-
VBAで CTRL+HOMEの位置へ移動...
-
オートフィルタで抽出したデー...
-
トランジスタの選び方
-
ファンモータが作動しない。
-
EXCEL 複数行のデータを1行にま...
-
別々のシートの表をピボットテ...
-
エクセルのカメラ機能について
-
エクセル マクロ "特定の日付...
-
他のシートの一番下の行データ...
-
(VBAにて)日付でデータを抽出す...
-
エクセルVBAで、特定文字から始...
-
【エクセル」 特定のセルで条件...
-
EXCEL の表を一行ずつシートに...
おすすめ情報