【发布时间】:2019-07-03 16:50:28
【问题描述】:
我提取了 2 个导出到 Excel 表中的数据库报告。我必须根据报告 A 中已存在的数据从报告 A 中删除行。
(示例:如果第 5 列在该列的任何单元格中包含单词“Pepsi”,则删除报告 A 中的整行)
我还必须根据报告 B 中特定列中存在的数据从报告 A 中删除行。因此,如果报告 A 的特定列中的任何单元格包含报告 B 中基于关键字的特定列的确切单元格值,请删除报告 A 中的该行。
(示例:过滤reportB的第4列中包含单词“Coke”或“Sprite”的任何单元格,reportB匹配“Coke Zero”和“Sprite” Shipment”在第 4 列的 2 个单元格中。从 reportA 的第 5 列中删除包含“Coke Zero”或“Sprite Shipment”的每一行
做了一些研究,并提出了以下脚本,以至少从 reportA 中删除行。
Sub Clean_Up_Food_Items()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Dim lo As ListObject
Set lo = Sheet2.ListObjects(1)
lo.Parent.Activate 'Activate sheet that table is on.
lo.AutoFilter.ShowAllData
lo.Range.AutoFilter Field:=5, Criteria1:="Coke*"
Application.DisplayAlerts = False
lo.DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
Application.DisplayAlerts = True
lo.AutoFilter.ShowAllData
lo.Range.AutoFilter Field:=4, Criteria1:="Fanta*"
Application.DisplayAlerts = False
lo.DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
Application.DisplayAlerts = True
lo.AutoFilter.ShowAllData
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
以上方法至少可以根据reportA中存在的数据删除行,但我不知道如何根据reportB过滤掉数据以删除reportA中的行。
【问题讨论】: