我一直在使用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列中的所有单元格。这就是我无法解决的问题,真的需要一些帮助。
非常感谢你!