Excelデータベースの自動更新

Excelデータベースの自動更新

私は Excel 2007 を使用しています。シート 1 のセル A1 に日付が表示され、セル B1 に金額が表示される Excel ファイルがあります。シート 2 のデータベースで、A1 の日付と B1 の金額を自動的に更新する必要があります。シート 2 のデータベースは、A1 の日付を検索値として選択して Vlookup を使用し、シート 1 のセル A1 と B1 にリンクされています。Excel ファイルは毎日使用され、セル A1 と B1 の内容は毎日変わります。シート 2 では、セル A1 と B1 の 1 年間のすべての日付と金額を記録する必要があります。

問題:
1. A1 の日付は毎日入力されるため変化し続けるため、A1 と B1 の以前の日付と金額を毎日取得するデータベースを構築するにはどうすればよいでしょうか。

例えば ​​:-

2015 年 3 月 14 日 (セル A1) のセル B1 の数字は 3,333 ドルです。したがって、データベースは、日付 2015 年 3 月 14 日と 3,333 ドルをデータベースのシート 2 にキャプチャします。

翌日の2015年3月15日には、セルA1の内容が2015年3月15日に変更され、B1には5,555ドルの数字が表示されます。

私の課題は、現在の日付と値のみを 1 つしか取得できないため、データベースのシート 2 に日付と値の両方をどのように保持するかということです。

正直に言うと、私は VBA を知りません。

答え1

2つのセルをコピーしたいので、これは少しだけトリッキーになります。通常、Worksheet_Changeイベントを使用してセルが変更されるたびにキャッチできます。ただし、両方のセルが変更されるまで待機する必要があります。正しい順序で変更する必要があるというルールを適用して最後のセルを監視するのではなく、C1代わりにセルが変更されるのを待つようにこれを記述しました。私の考えでは、ユーザーは編集してA1からB1入力できます。何でもC1、コードが実行されます。データの入力規則を使用して、"実行" のようなオプションが 1 つだけあるドロップダウンを に追加できます。以下のコードは、 の値が変更されるたびに、 &の値をシート 2 の最後の行にC1コピーし、 からその値をクリアします。A1B1C1C1

VBA エディタを開きます ( Alt+F11は 1 つの方法です)。左側のプロジェクト エクスプローラー ウィンドウでシート 1 を探します (開いているすべてのワークブックとその中のワークシートを示すツリー メニューがすでに表示されているはずです)。シートをダブルクリックしてコード ウィンドウを開きます。以下のコードをコピーして貼り付けます ( Worksheets("Sheet2")「Sheet2」がデータをコピーする 2 番目のワークシートの実際の名前でない場合は、行を編集する必要がある場合があります)。

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r As Long
    If Not Intersect(Target, Range("C1")) Is Nothing Then
        With Worksheets("Sheet2")
            r = .Range("A" & .Rows.Count).End(xlUp).Row + 1
            .Range("A" & r).Value = Range("A1").Value
            .Range("B" & r).Value = Range("B1").Value
        End With
        Application.EnableEvents = False
            Range("C1").ClearContents
        Application.EnableEvents = True
    End If
End Sub

(VBA に詳しい皆さんへ: 私は通常、Cellsを より使う方が好きですRangeが、すぐに理解できるものではないので を使いましたRange。)

答え2

作業を行うためのツールを知らず、習得できない場合は、手動で行うしかありません。

次に、手動で実行する必要があった手順を書き留めます。これが、自動化する方法の概要になります。

次に、書き留めた手順を自動化する簡単な VBA マクロを作成する方法を Google で検索します。

関連情報