プロが教える店舗&オフィスのセキュリティ対策術

Book1のSheet1、A列に日付、B列に対応するデータがあります。
Book2のSheet1A1セルに入力された日付と一致するBook1Sheet1B列の値を、Book2のB1セルに値貼り付けしたいのですが、どのように記述すればよろしいでしょうか。
宜しくお願いいたします。

A 回答 (2件)

以下のマクロをBook2/Sheet1のシート名タブ右クリック→「コードの表示」で開く画面に貼り付け、シートに戻りA1に日付を入力してみて下さい



Private Sub Worksheet_Change(ByVal Target As Range)
Dim ret
 If Target.Address = "$A$1" Then
  Set ret = Workbooks("Book1.xls").Sheets("Sheet1").Range("A:A") _
     .Find(ActiveSheet.Range("A1").Value)
  If ret Is Nothing Then
   ActiveSheet.Range("B1").Value = "該当なし"
  Else
   ActiveSheet.Range("B1").Value = ret.Offset(0, 1).Value
  End If
 End If
End Sub

Hitする日付が複数あったら、最初の値をB1に格納しています。
    • good
    • 0

#01です。


書き忘れてました。これだけならVLOOKUP関数で済んでしまう内容ですが、なぜVLOOKUP関数ではダメなのですか?

BOOK1、BOOK2共に開いていればブックをまたがっても参照はできますよ
    • good
    • 0
この回答へのお礼

ありがとうございます、試してみます。

>これだけならVLOOKUP関数で済んでしまう内容ですが、なぜVLOOKUP関数ではダメなのですか?

まさにご指摘の通り今はLookup関数で処理しているのですが、参照ファイルが非常に重く、かつ大量に処理する必要があるため、再計算を手動にしたままマクロで処理すればひょっとしてして作動時間が節約できるのでは、と思い質問いたしました。

お礼日時:2007/04/11 21:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!