excel - 将表格与其他工作表中的列表进行比较并删除任何匹配项
问题描述
我有以下代码比较两个列表(表 1 中的 A 列和表 2 中的 C 列)并删除表 2 列表中不存在的值。此代码工作正常,但当两列 A 时它都不起作用在工作表 1 和工作表 2 的 C 列中有表格。请让我知道如何修改此代码以也适用于表格。此外,如何从具有 C 列(表 2)常量列表的多个工作表中删除不匹配项?
Sub Stridhan()
Dim lr As Integer, x As Integer
lr = ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
Application.ScreenUpdating = False
For x = lr To 2 Step -1
If Application.WorksheetFunction.CountIf(Sheets("Sheet2").Range("C:C"), Sheets("Sheet1").Cells(x, 1).Value) = 0 Then
Sheets("Sheet1").Rows(x).EntireRow.Delete
End If
Next x
Application.ScreenUpdating = True
End Sub
解决方案
为了让它通过更多的工作表,你可以使用这样的代码
Sub cycle_sheets()
For Each sh In Worksheets
If sh.Name <> "Sheet2" Then
'your code to cycle through the data where instead of Sheets("SheetX"). you use sh. like this
sh.Rows(x).EntireRow.Delete
End If
Next
End Sub
这将遍历所有工作表,并且对于所有与“Sheet2”命名不同的工作表,它将执行 if 中的内容。因此,您只需要获取您的代码,更改工作表引用并将其放入 if 中。
编辑:如果您希望它跳过由于过滤而不可见的行,您可以在确定是否要使用删除之前检查该行
If sh.Rows(x).Hidden = False Then
推荐阅读
- c# - UWP 按钮按下和释放事件处理程序
- python - 在 Docker 镜像中安装 argon2(安装 gcc 的问题)
- python - 如果翻译成 Javascript,我可以在 Google 表格中运行这个程序吗?
- javascript - Javascript if else 大于范围滑块
- mysql - phpmyadmin 错误:#1062 - 所有数据库上的键 'PRIMARY' 的重复条目 ''
- java - 获取所有 JAR 文件中所有类中带有注释 @Test 的所有方法
- java - 将具有多项式的c ++ crc16计算转换为android java
- php - 选择任何字段值与数组中的值匹配的行
- android - 使用包 com.sbinstall 识别 Android 商店
- r - 时间序列热图