【问题标题】:Remove entire row based on match?根据匹配删除整行?
【发布时间】:2013-10-07 14:22:42
【问题描述】:

需要根据 sheet1 上的 L 列与 sheet2 上的 A 列的匹配,在 Excel 中删除 CSV 文件中的多行。内容是电子邮件地址。我怎样才能做到这一点?

因此,如果 sheet2 列 A 的电子邮件地址与 sheet1 - 列 L 中的任何电子邮件地址匹配,则它应该从 sheet1 中删除该电子邮件地址所在的整行。

如下表 1:

下面的表 2:

@mehow,这是我将代码作为模块运行时得到的图像:

【问题讨论】:

  • 嗯,你可以使用自动过滤器吗?
  • 如何使用自动过滤器?
  • 可以看到自动过滤示例here

标签: excel vba macos multiple-columns


【解决方案1】:

这对于您想要做的事情来说非常快,因为它不涉及任何循环。

Sub DeleteDuplicates()

Dim StartingScreenUpdateValue As Boolean
Dim StartingEventsValue As Boolean
Dim StartingCalculations As XlCalculation

With Application
    StartingScreenUpdateValue = .ScreenUpdating
    StartingEventsValue = .EnableEvents
    StartingCalculations = .Calculation
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
End With


Dim varTestValues As Variant
Dim sh1 As Worksheet
Dim sh2 As Worksheet

Set sh1 = Sheets("Sheet1")
Set sh2 = Sheets("Sheet2")

With sh2
    varTestValues = .Range("A1", .Range("A" & .Rows.Count).End(xlUp))
End With

sh1.Range("L1", sh1.Range("L" & sh1.Rows.Count).End(xlUp)) _
    .AutoFilter Field:=12, Criteria1:=Application.Transpose(varTestValues), Operator:=xlFilterValues

sh1.Range("L2", sh1.Range("L" & sh1.Rows.Count).End(xlUp)) _
    .SpecialCells(xlCellTypeVisible).EntireRow.Delete

sh1.AutoFilterMode = False

With Application
    .ScreenUpdating = StartingScreenUpdateValue
    .EnableEvents = StartingEventsValue
    .Calculation = StartingCalculations
End With

End Sub

注意:此代码运行假设您的数据有标题,如果没有请告知。

记住 始终在您的数据副本而非实际数据上运行任何代码,直到您确信它可以 100% 运行。

【讨论】:

  • 我把这个放在哪里?是的,我在两张纸上都有标题,占据了第一行。
  • 将此作为宏添加并运行它,这删除了 ​​sheet1 中的所有内容,而 sheet2 保持不变。
  • 您 100% 肯定不是 sheet1 中的所有值都在 sheet2 上?我测试了这个代码大约十几次,它运行良好。您的数据是否已使用过滤器?
  • 不,这两张表都是从 CSV 文件导入的。没有过滤器。 Sheet1 L 列有超过 6,000 个唯一的电子邮件地址,而 Sheet2 A 列只有 947 个唯一的电子邮件地址。
  • 如果您的数据中有更多列,那么只有 L 是连续的,您必须将字段值从 1 更改为 L 表示的列(如果数据的第一列在列中A 然后将字段更改为 12)
猜你喜欢
  • 1970-01-01
  • 2022-08-03
  • 1970-01-01
  • 2019-02-13
  • 2020-02-13
  • 1970-01-01
  • 2016-04-08
  • 1970-01-01
  • 2015-05-11
相关资源
最近更新 更多