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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。 「そうなんだね」と「確かに披露する場所ないね」で評価します。
-
【お題】引っかけ問題(締め切り10月27日(日)23時)
【大喜利】 「日本で一番高い山は富士山……ですが!」から始まった、それは当てられるわけ無いだろ!と思ったクイズの問題
-
自分のセンスや笑いの好みに影響を受けた作品を教えて
子どもの頃に読んだ漫画などが その後の笑いの好みや自分自身のユーモアのセンスに影響することがあると思いますが、 「この作品に影響受けてるな~!」というものがあれば教えてください。
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
VLookupで参照する範囲を変数で渡したい
Access(アクセス)
-
VLOOKUP関数:別シートにある参照範囲が変動する場合
Access(アクセス)
-
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
-
4
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
5
vlookup関数の引数を変数で指定することはできますか?
Excel(エクセル)
-
6
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
7
B列の最終行までA列をオートフィル
Visual Basic(VBA)
-
8
エクセルVBAでオートフィルター最上行を取得するには
Excel(エクセル)
-
9
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
10
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
11
UserForm1.Showでエラーになります。
工学
-
12
ピボットテーブルでの毎回可変するデータの最終行までの範囲を指定したいです。
PowerPoint(パワーポイント)
-
13
【Excel VBA】複数ある特定の文字列を含む行を削除
Excel(エクセル)
-
14
マクロで最終行を取得してコピーしたい
Visual Basic(VBA)
-
15
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
16
エクセルVBAのIf,Then 構文でOr条件とAnd条件の結合方法?
Excel(エクセル)
-
17
エクセルで複数のシートのクリアをしたいです
Excel(エクセル)
-
18
VBAでワークブックの名前を変数にして開かせる?
Excel(エクセル)
-
19
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
20
未記入がある場合はマクロを実行させない方法
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelの不要な行の削除ができな...
-
複数シートからデータを拾って...
-
エクセルファイルのシート毎の容量
-
Excelでシートの違うデータでグ...
-
トランジスタの選び方
-
エクセル マクロ "特定の日付...
-
EXCELで2つのファイルから重複...
-
シート削除して同名シート追加...
-
【Excel】【VBA】重複しないリ...
-
EXCEL VBA 担当者毎にファイル作成
-
EXCEL 複数行のデータを1行にま...
-
Excel 売上管理シートに入力し...
-
【エクセル」 特定のセルで条件...
-
Excelですが、同一データが複数...
-
Excelで日付変更ごとに、自動的...
-
オートフィルタで抽出したデー...
-
エクセル 指定範囲を関数で計...
-
VBAで CTRL+HOMEの位置へ移動...
-
エクセルの表計算がだんだん重...
-
エクセルVBAで、特定文字から始...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelの不要な行の削除ができな...
-
複数シートからデータを拾って...
-
Excelでシートの違うデータでグ...
-
エクセルファイルのシート毎の容量
-
シート削除して同名シート追加...
-
VBAで CTRL+HOMEの位置へ移動...
-
Excelで日付変更ごとに、自動的...
-
トランジスタの選び方
-
EXCELで2つのファイルから重複...
-
【エクセルマクロ】複数シート...
-
他のシートの一番下の行データ...
-
エクセル VBA VLOOKUP
-
エクセルで名簿を50音で切り分ける
-
エクセル マクロ "特定の日付...
-
エクセル 縦に長い表の印刷時...
-
EXCEL 複数行のデータを1行にま...
-
【Excel】マクロでグラフ系列に...
-
EXCEL の表を一行ずつシートに...
-
エクセルのカメラ機能について
-
時間帯の重複を除いた集計について
おすすめ情報