问题

问题

首先,如果这个问题在其他地方得到解答,我很抱歉。我搜索了整个网站,找不到任何似乎能满足我需求的东西。我对宏完全陌生,这将是我第一次尝试实现宏。我尝试自己录制一个,但正如我来这里清楚地表明的那样,我毫无进展……我不知道如何编写宏/VBA。我尝试运行 Excel 的“录制宏”功能,然后根据单元格的值过滤数据,然后删除包含重复数据的行,但这没有用。之后当我运行宏时,它只是根据我录制宏时选择的单元格的值进行过滤。

问题

第1部分:

如何在 Excel 中创建一个宏来过滤我的表格,以便它只显示所有三列(北向、东向、高程)与另一行的北向、东向和高程相同的行?

第2部分:

那么,我该如何让同一个宏保留数据的第一个实例,但删除包含重复的北距、东距和高程的所有行?同样,所有三个都必须与第一个实例匹配。如果只有一列或两列与第一个实例匹配,我希望它保留,因为它不是相同的点。

第 3 部分:

我需要宏来搜索整个表格,并对北向、东向和高程数据与其他行中的这三项数据相同的每一行执行此操作。在每种情况下,我都需要它保留出现数据的第一行,但删除包含重复数据的行。

提前感谢您提供的任何帮助!我非常渴望找到一个解决方案,让我能够快速浏览我拥有的这 7000 行数据。

我希望下面的示例不太长。我尝试提供足够的数据来使用并制作一个好的样本。

样本的 Excel 文件如下所示

观点 # 北距 东距 海拔 描述
1 486942.990 2727277.620 817.090 示例1
2 487232.950 2727284.613 787.460 示例2
3 486879.180 2727517.621 803.425 _无重复
4 487155.702 2727564.718 794.449 _无重复
5 486942.990 2727277.620 817.090 示例1
6 486942.990 2727277.620 817.090 示例1
7 487222.142 2728277.351 789.665 _无重复
8 486471.604 2726417.279 780.678 _无重复
9 486522.528 2726483.133 785.644 例3
10 487265.671 2726869.400 780.803 _无重复
11 487232.950 2727284.613 787.460 示例2
12 486942.990 2727277.620 817.090 示例1
十三 487232.950 2727284.613 787.460 示例2
14 487232.950 2727284.613 787.460 示例2
15 486942.987 2727277.621 817.092 _无重复
16 486942.990 2727277.620 817.090 示例1
17 486916.976 2727960.190 792.667 _无重复
18 487136.935 2727629.030 788.643 _无重复
19 486522.528 2726483.133 785.644 例3
20 486522.528 2726483.133 785.644 例3

请查看上面的示例。希望它能帮助理解一切并帮助解决问题。(我将其减少到只有 20 行数据,但我处理的文件有大约 7000 行。这就是为什么我试图找到一种比手动搜索所有重复项更有效的方法。)

背景故事(如果感兴趣/有用)

我是一家土地测量公司的 CAD 绘图员。我目前正在绘制一份工作,多个现场工作人员必须在不同时间进行工作,这意味着他们必须将前一个工作人员的现场数据导入他们的 GPS 设备,以确保他们收集的数据与前一个工作人员收集的数据不同。然而,他们在导入/导出过程中犯了一些错误,现在我有数千个具有相同北向、东向、海拔和点描述但不同点编号的现场定位。 如果您看一下我链接的小示例 Excel 文件,这将更有意义。

经过几天的手动搜索,我搜索了数百行(大约 7000 行)以查找重复点,并删除了除第一个之外的所有实例,我开始怀疑是否有更简单的方法。这就是我来到这里的原因。

答案1

你不能只使用“RemoveDuplicates”方法吗?

请注意,在示例工作簿中,您的数据位于桌子名为Table1位于Sheet1。您可能需要编辑代码以根据实际数据进行更改。

Option Explicit
Sub deDup()
    Dim LO As ListObject
Set LO = ThisWorkbook.Worksheets("Sheet1").ListObjects("Table1")
With LO.DataBodyRange
    .RemoveDuplicates Array(2, 3, 4), Header:=xlNo
End With

样本数据的输出
在此处输入图片描述

相关内容