在表 1 中,我有一个平面文件格式的数据,包括日期。
在工作表 2 的单元格 A1 中,我的日期为 01/01/2019,在单元格 A2 中的日期为 31/12/2019。
在 VBA 中,我需要能够从工作表 1 中挑选出符合工作表 2 中 A1/A2 中指定的日期标准的唯一日期,并将它们放入工作表 3 中,为每个唯一日期增加一行。
Sheet 1数据结构如下:
A B
1 02/01/2019 Chromium
2 02/02/2019 Chromium
3 02/06/2019 Chromium
4 02/09/2019 Chromium
5 03/03/2020 Chromium
6 05/06/2020 Chromium
7 02/01/2019 Cadmium
8 10/10/2019 Cadmium
9 20/11/2019 Cadmium
在上面的示例数据集中,有 9 行包含日期,总共有 8 个唯一日期,但只有其中 6 行符合上面指定的日期标准。
我将把它合并到更广泛的 VBA 代码中的另一个循环中。
我想知道是否需要使用字典?
简短、简单且快速的解决方案是
Option Explicit
Sub GetUniqueDatesBetween()
Dim a, i&, j&, lb&, ub&, pv&
a = Application.Sort(Sheet1.[A1].CurrentRegion.Columns(1).Value2)
lb = Sheet2.[A1].Value2: ub = Sheet2.[A2].Value2
i = 1: j = 1
While a(i, 1) < lb: i = i + 1: Wend
pv = a(i, 1) - 1
While a(i, 1) <= ub
If a(i, 1) > pv Then
Sheet3.Cells(j, 1) = a(i, 1)
pv = a(i, 1)
j = j + 1
End If
i = i + 1
Wend
End Sub