【发布时间】:2021-02-03 16:30:27
【问题描述】:
我正在处理一个我有两张纸的场景。 Sheet1 是我正在创建的主表和 sheet2。
Sheet1 的 Column1 是 Object,它也有重复的对象。所以,我所做的是创建了一个宏,它将生成唯一的对象并将其粘贴到 sheet2 中。
现在,从 Sheet2 开始,每个对象都应该与 Sheet1 的 column1 匹配,并且根据匹配结果,它还应该计算 sheet1 中其他列到 sheet2 的相应条目。
下面是我两张床单的截图
Sheet1
Sheet2
这是我的宏代码,它将首先将唯一对象从 sheet1 复制并粘贴到 sheet2 Column1。
Sub UniqueObj()
Dim Sh1 As Worksheet
Dim Rng As Range
Dim Sh2 As Worksheet
Set Sh1 = Worksheets("Sheet1")
Set Rng = Sh1.Range("A1:A" & Sh1.Range("A65536").End(xlUp).Row)
Set Sh2 = Worksheets("Sheet1")
Rng.Cells(1, 1).Copy Sh2.Cells(1, 1)
Rng.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sh2.Range("A1"), Unique:=True
End Sub
但是,我无法从那里继续前进。我很新,任何帮助都会非常有用。
谢谢
【问题讨论】:
-
很抱歉没有坚持使用 VBA,但既然您使用 Excel,为什么不使用 PowerQuery 并运行合并操作从匹配项中检索您想要的任何数据?
-
此工作表还有其他宏。所以为了保持用户的一致性和易用性
-
您仍然可以清楚地描述 PQ 上的数据操作,并在最坏的情况下通过 VBA xD 刷新它。不管 PQ,我建议将 Sheet1 中的数据保留为表对象,因此您可以使用专用方法访问数据,然后可以轻松地对“对象”列进行重复数据删除。稍后您可以在 sheet2 上使用 countifs 公式,并使用 VBA 将公式交换为值。