使用Excel VBA从Excel中从查询下载的数据中删除重复项

问题描述

我已经查询过从一个有60天历史记录的网站下载数据。但是我需要存储过去240天的值,之后每当获取新数据时,最旧的数据应自动删除。为此,我尝试将60天的数据(最初在A4:A63中接收)移动到新位置(A184:A243),并先清除内容A4:A63...。然后移动在A4:A63中接收的下一批数据到位置(A124:A183)并清除了内容A4:A63 ......,然后将在A4:A63中接收到的下一批数据移动到位置A64:A123并清除了内容A4:A63。这样,可以存储240天的数据。之后,每当从网站上获取新一批数据时,都会存储最新数据,最旧的数据将被删除,就像先进先出一样。这是我编写的代码

`

Sub ShiftData()
Dim i As Integer
If IsEmpty(Range("A4").Value) = True Then                      '<== To Check new data is present
MsgBox ("No Input to shift")
Else
If Range("A" & 243).Value = "" Then                            '<== Data shifted to last place
Range("A243:A184") = Range("A63:A4").Value
Range("A63:A4").ClearContents
ElseIf Range("A" & 183).Value = "" Then   '<== If last place is occupied data shifted to lastmost empty place
Range("A183:A124") = Range("A63:A4").Value
Range("A63:A4").ClearContents
ElseIf Range("A" & 123).Value = "" Then
Range("A123:A64") = Range("A63:A4").Value '<== If last place is occupied data shifted to lastmost empty place
Range("A63:A4").ClearContents
End If
If Not IsEmpty(Range("A4:A63").Value) = True Then
If Range("A243") <> "" And Range("A183") <> "" _
And Range("A123") <> "" And Range("A63") <> "" Then '<== To check if all places are filled.
Range("A243:A124") = Range("A183:A64").Value       '<== Shifted all data to flush out oldest data
Range("A123:A64") = Range("A63:A4").Value
Range("A4:A63").ClearContents
End If
End If
End If
End Sub`

在这里面临的问题是,从网站的每个提要中,我只能获得一到四行新数据,即60天的其余数据(59天)是相同的。因此,如果我像这样堆叠,我将得到多个重复,这在我的分析中造成了问题。我只想获取新数据以堆积起来并忽略重复数据。让我用一个示例一次解释3个新行来说明这一点,以便于理解。 enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)