[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロでVLOOKUP』(g-g)
AシートのA1に今日の日付があります。BシートのB1:B31に売上げがあります。 C1:B31に前年売上げD1:D31に予算売上げがあります。 これをマクロでVLOOKUPで検索して本日の売上、前年売上、予算売上をブックを 開いた時にエクセルのメッセージボックスで本日の売上は・・、前年売上は・・、予算売上は・・とだすようにしたいのですが教えてもらえませんか?ホームボタンというのですか?グレーの四角いボタンを押して本日の売上は・・、前年売上は・・、予算売上は・・ でもかまいませんので教えてください。宜しくお願いします。
こんにちは 質問にそのまま答えると、 Private Sub Workbook_Open() Dim k As Variant Dim z As Variant Dim t As Variant With WorksheetFunction k = .VLookup( _ Worksheets("A").Range("A1"), _ Worksheets("B").Range("A1").CurrentRegion, _ 2, 0) z = .VLookup( _ Worksheets("A").Range("A1"), _ Worksheets("B").Range("A1").CurrentRegion, _ 3, 0) t = .VLookup( _ Worksheets("A").Range("A1"), _ Worksheets("B").Range("A1").CurrentRegion, _ 4, 0) End With MsgBox "本日の売上: " & k & vbCrLf & _ "前年売上 : " & z & vbCrLf & _ "予算売上 : " & t End Sub こんな感じで。 ThisWorkbook モジュールにセットしてブックを開きなおすとメッセージが表示されます。 (ウッシ)
Worksheets("A").Range("A1"), _ Worksheets("B").Range("A1").CurrentRegion, _ 2, 0) この部分の2, 0の意味を教えてもらえませんか? Worksheets("B").Range("A1").CurrentRegion, _ のA1はA1より下に永遠に検索すると言う意味でしょうか? (g-g)
こんにちは 2, 0 は普通に「Vlookup」のヘルプ見て貰えれば分かりますよ。 列番号と検索の型です。 Range("A1").CurrentRegion はセルA1から空白行、空白列の無いデータの有る範囲の事です。 Worksheets("B")のA列には検索対象の日付が入っていると仮定してます。 (ウッシ)
ヘルプではわからない部分を補足。 ワークシート上では論理値(TRUE、FALSE)の個所に数値がある場合、「0」をFALSE、「0以外」をTRUEと変換して使います。 (独覚)
Private Sub Workbook_Open() Application.AskToUpdateLinks = False MsgBox "リンク先ファイルよりデーター吸い上げに成功しました。", vbInformation Range("A1:G1").Activate Dim k As Variant Dim z As Variant Dim t As Variant Dim g As Variant With WorksheetFunction k = .VLookup( _ Worksheets("メニュー(集計)").Range("C35"), _ Worksheets("予算表").Range("A4").CurrentRegion, _ 4, 0) z = .VLookup( _ Worksheets("メニュー(集計)").Range("C36"), _ Worksheets("予算表").Range("A4").CurrentRegion, _ 10, 0) t = .VLookup( _ Worksheets("メニュー(集計)").Range("C35"), _ Worksheets("予算表").Range("A4").CurrentRegion, _ 3, 0) g = .VLookup( _ Worksheets("メニュー(集計)").Range("C36"), _ Worksheets("予算表").Range("A4").CurrentRegion, _ 11, 0) End With MsgBox "本日の予算売上: " & k & vbCrLf & _ "昨日までの予算比は : " & z & vbCrLf & _ "前年売上は : " & t & vbCrLf & _ "昨日までの前年比は : " & g
Sheets("メニュー(集計)").Range("h33") = Format(ThisWorkbook _ .BuiltinDocumentProperties("Last Save Time").Value, "m月d日 h:mm") End Sub
色々と回答ありがとうございます。こんな風にしました。ですがエラーになりますなぜでしょうか?
(g-g)
こんにちは どこでエラーになりますか? エラーメッセージの内容は? 検索値が違うのは何故ですか?
Worksheets("予算表")を開いて、 Sub test() Range("A4").CurrentRegion.Select End Sub とすると、意図する範囲が選択されますか? (ウッシ)
こんにちは Worksheets("メニュー(集計)").Range("C35") Worksheets("メニュー(集計)").Range("C36") で違ってますよね?
「実行時エラー1004 WorksheetFunctinoクラスのViookuoプロパティを取得できません」 って事は検索範囲に当日の日付が無いって事です。
Private Sub Workbook_Open() Dim k As Variant Dim z As Variant Dim t As Variant On Error Resume Next With WorksheetFunction k = .VLookup( _ Worksheets("A").Range("A1"), _ Worksheets("B").Range("A1").CurrentRegion, _ 2, 0) z = .VLookup( _ Worksheets("A").Range("A1"), _ Worksheets("B").Range("A1").CurrentRegion, _ 3, 0) t = .VLookup( _ Worksheets("A").Range("A1"), _ Worksheets("B").Range("A1").CurrentRegion, _ 4, 0) End With On Error GoTo 0 MsgBox "本日の売上: " & k & vbCrLf & _ "前年売上 : " & z & vbCrLf & _ "予算売上 : " & t End Sub のようにすればエラーは出ません。 検索値と検索範囲が年月日「yyyy/mm/dd」で入力されていて、当日が検索範囲にある事を確認して下さい。 (ウッシ)
2, 0) この部分のRange("A1")がA4から2010/9/1ですのでA4にしましたがこれだとエラーになります。 どうしてでしょうか?(g-g)
こんにちは 先に書いた、 Worksheets("予算表")を開いて、 Sub test() Range("A4").CurrentRegion.Select End Sub はやってみましたか? 意図した検索範囲でない場合はコードを書き換える必要が有ります。 (ウッシ)
Dim k As Variant Dim z As Variant Dim t As Variant Dim g As Variant On Error Resume Next With WorksheetFunction k = .VLookup( _ Worksheets("メニュー(集計)").Range("c36"), _ Worksheets("予算表").Range("A1").CurrentRegion, _ 4, 0) z = .VLookup( _ Worksheets("メニュー(集計)").Range("c35"), _ Worksheets("予算表").Range("A1").CurrentRegion, _ 10, 0) t = .VLookup( _ Worksheets("メニュー(集計)").Range("c36"), _ Worksheets("予算表").Range("A1").CurrentRegion, _ 3, 0) g = .VLookup( _ Worksheets("メニュー(集計)").Range("c35"), _ Worksheets("予算表").Range("A1").CurrentRegion, _ 11, 0) End With On Error GoTo 0 MsgBox "本日の売上予算は: " & k & vbCrLf & _ "昨日現在の売上予算比は : " & z & vbCrLf & _ "前年売上は : " & t & vbCrLf & _ "昨日までの前年比は : " & g End Sub ウッシさん見直したら上のコードで出来たのですが前年比が80%と出したいのですが0.8と出てしまいます。これを80%と出るように修正してもらえませんか?お願いします (g-g)
Format関数を使ってはどうでしょうか? "昨日までの前年比は : " & Format(g,"0%")
(独覚)
独覚さん回答ありがとうございます。"昨日現在の売上予算比は : " & z & vbCrLf & _ も指導してもらえませんか?応用法がいまいちわからなく・・すみません宜しくお願いします。(g-g)
g→Format(g,"0%")なので "昨日現在の売上予算比は : " & Format(z,"0%") & vbCrLf & _ としてみてください。 (独覚)
NOW()は日付だけではなく時間も含んでいます。
「2010/9/27」と入力した場合、時間まで表示させると「2010/9/27 0:00:00」となります。 対して「NOW()」の場合「2010/9/27 15:52:12」等となるため一致しません。 =TODAY() で行ってみてください。 (独覚)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.