Excel VBA将每日添加的新数据复制到另一个工作表

时间:2017-03-20 07:53:00

标签: excel-vba vba excel

我一直在使用Stack Overflow来查找Excel VBA问题的解决方案,但这是我第一次真正努力寻找正确的解决方案。所以我想这是我在这里发布第一个问题的时候了。

我有一个每天从外部源刷新的工作表。此源构建包含过去2周数据的报告。我正在将此数据导入名为“data”的工作表。

报告在A列中每行有一个唯一标识符。这是我用来搜索新数据的值。每行还包含将行添加到报表的日期。此日期位于D列,格式为dd-mm-yyyy hh:mm。

现在我想在工作表“备份”上对这些数据进行备份,因为报告只包含过去两周的数据,我想建立一个更长的历史记录。

因此,我的代码需要找到工作表“数据”上尚未出现在“备份”表单上的所有行,并将找到的数据添加到工作表“backup”中。

我可以找到很多让我感动的解决方案。但是我最挣扎的是如何遍历工作表“备份”中已有的数据,以便它使用备份工作表中已存在的值搜索数据工作表。

这是我到目前为止所得到的:

Sub Data_backup()

    Dim data As Worksheet
    Dim backup As Worksheet
    Dim rng As Range
    Dim rng_totaal As Range
    Dim rng2 As Range
    Dim rng_totaal2 As Range
    Dim zoekrng As Range
    Dim zoekmatrix As Range

    Set data = Sheets("data")
    Set backup = Sheets("backup")
    Set rng = data.Range("A2").CurrentRegion.Offset(1, 0)
    Set rng_totaal = rng.Resize(rng.Rows.Count - 1, rng.Columns.Count)
    Set rng2 = backup.Range("A2").CurrentRegion.Offset(1, 0)
    Set rng2_totaal = rng2.Resize(rng2.Rows.Count - 1, rng2.Columns.Count)
    Set zoekmatrix = rng_totaal.Columns(1)
    Set zoekrng = rng2_totaal.Columns(1)

    With zoekmatrix
        Set src = .Find("D-2017-0792994", LookIn:=xlValues,      LookAt:=xlWhole).EntireRow
        Set cpy = backup.Range("A1").End(xlDown).EntireRow
        If Not src Is Nothing Then
            cpy.Value = src.Value
        Else
            MsgBox ("ok")
        End If
    End With

End Sub

现在搜索值D-2017-0792994需要变为动态,因此它可以遍历工作表backup的A列中的所有单元格。这就是我无法解决的问题,真的需要一些帮助。

非常感谢你!

0 个答案:

没有答案