自动更新 Excel 数据库

自动更新 Excel 数据库

我正在使用 Excel 2007。我有一个 Excel 文件,其中单元格 A1 显示日期,单元格 B1 显示工作表 1 中的金额。我需要自动更新工作表 2 中数据库中的 A1 中的日期和 B1 中的金额。通过使用 Vlookup 选择 A1 中的日期作为查找值,工作表 2 中的数据库链接到工作表 1 中的单元格 A1 和 B1。excel 文件每天都在使用,单元格 A1 和 B1 的内容每天都会变化。工作表 2 需要记录单元格 A1 和 B1 中一年的所有日期和金额

我的问题:
1.我如何建立数据库来每天捕获 A1 和 B1 中的前一个日期和金额,因为 A1 中的日期不断变化,因为它是每天输入的。

例如 :-

2015 年 3 月 14 日(单元格 A1)单元格 B1 中的数字为 3,333 美元。因此,数据库在数据库的第 2 张表中捕获日期 2015 年 3 月 14 日和 3,333 美元。

第二天,即 2015 年 3 月 15 日,单元格 A1 的内容现在更改为 2015 年 3 月 15 日,单元格 B1 显示的数字为 5,555 美元

我的挑战是如何在数据库中保存表 2 中的日期和值,因为我只能获取当天的一个日期和值。

老实说,我不知道 VBA。

答案1

由于您想要复制两个单元格,因此这只会稍微有点棘手。通常,您可以使用事件Worksheet_Change来捕获单元格的更改。但是,您希望等到两个单元格都更改。我编写此代码是为了等待单元格更改,而不是强制执行某些规则,即您必须按正确的顺序更改它们,然后只观察最后一个单元格C1。我的想法是,您的用户可以编辑A1然后B1输入任何事物C1,代码就会触发。您可以使用数据验证来添加一个下拉列表,C1该下拉列表只有一个选项,例如“Go”。下面的代码会在值更改时将A1&的值复制到工作表 2 的最后一行,然后从 中清除该值。B1C1C1

打开 VBA 编辑器(Alt+F11是一种方法)。在左侧的 Project Explorer 窗口中查找 Sheet 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 迷来说:我通常Cells更喜欢使用Range但它不是那么容易理解,所以我选择了Range。)

答案2

如果您不了解并且无法学习完成这项工作的工具,那么您唯一的选择就是手动完成。

然后写下您必须手动执行的步骤 - 这将是您如何实现自动化的大纲。

然后开始谷歌搜索如何创建一个简单的 VBA 宏来自动执行您写下的步骤。

相关内容