自動更新Excel資料庫

自動更新Excel資料庫

我使用的是 Excel 2007。透過使用Vlookup 選擇A1 中的日期作為查找值,工作表2 連結到工作表1 中的儲存格A1 和B1。 Excel 檔案每天都會使用,儲存格 A1 和 B1 內容每天都會變更。表 2 需要在儲存格 A1 和 B1 中記錄一年的所有日期和金額

我的問題:
1. 我如何建立資料庫來每天捕獲 A1 和 B1 中的先前日期和金額,因為 A1 中的日期不斷變化,因為它是每天的關鍵。

例如 :-

2015 年 3 月 14 日(儲存格 A1),儲存格 B1 中的數字為 3,333 美元。因此,資料庫擷取了日期 14/3/2015 和資料庫表 2 中的 $3,333。

第二天,15/3/2015,儲存格 A1 內容現已變更為 15/3/2015,B1 顯示數字 $5,555

我的挑戰是如何將表 2 中的日期和值保留在資料庫中,因為我只能取得當天的一個日期和值。

老實說我不懂VBA。

答案1

這只是稍微有點棘手,因為您想要複製兩個單元格。通常,您可以使用該Worksheet_Change事件來捕獲單元格發生的任何變化。但是,您需要等到兩個儲存格都發生變更。我編寫此程式碼是為了等待單元格C1更改,而不是強制執行某些規則,您必須按正確的順序更改它們,然後只觀察最後一個單元格。我的想法是您的用戶可以編輯A1然後B1輸入任何事物然後C1代碼就會觸發。您可以使用資料驗證新增一個下拉式選單,C1該下拉式選單只有一個選項,例如「Go」。每當 的值發生變更時,下面的程式碼都會將A1&的值複製到工作表 2 的最後一行,然後從 中清除該值。B1C1C1

開啟 VBA 編輯器(Alt+F11是一種方法)。在左側的「專案資源管理器」視窗中尋找工作表 1(它應該已經存在,並帶有一個顯示所有開啟的工作簿及其中的工作表的樹形選單)。雙擊工作表以開啟其程式碼視窗。複製並貼上以下程式碼:(Worksheets("Sheet2")如果「Sheet2」不是要將資料複製到的第二個工作表的實際名稱,則可能需要編輯行。)

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 迷來說:我通常更喜歡使用Cellsover Range,但它不是那麼容易理解,所以我選擇了Range。)

答案2

如果您不知道也無法學習完成這項工作的工具,那麼唯一的選擇就是手動完成。

然後寫下您必須手動執行的步驟 - 這將是您如何實現自動化的大綱。

然後開始谷歌搜尋如何建立一個簡單的 VBA 宏,該宏將自動執行您寫下的步驟。

相關內容