写一段VBA代码,在excel表格AAA中有sheet1和220原始数据集,其中sheet1中的A列有n行字符,要求读取sheet1中A列n字符,并在原始数据集中的所有单元格中循环查找该字符所在单元格的行并删除
时间: 2024-05-12 11:17:14 浏览: 181
VBA 按照某一列进行筛选拆分数据,拆分成多个表或多个Sheet,按某列检查重复生成新的Sheet,删除除本表外的所有表
5星 · 资源好评率100%
以下是可能实现你的需求的VBA代码,其中假设原始数据集中的行数为m,sheet1中A列的字符均为文本型数据:
```vb
Sub DeleteRowsBySearch()
Dim searchRange As Range
Dim searchChar As String
Dim i As Long, j As Long
' 获取sheet1中A列的字符范围
Set searchRange = Sheets("sheet1").Range("A1:A" & Sheets("sheet1").Cells(Rows.Count, "A").End(xlUp).Row)
' 逐个字符在原始数据集中查找并删除对应行
For i = 1 To searchRange.Rows.Count
searchChar = searchRange.Cells(i, 1).Value
For j = m To 1 Step -1
If InStr(1, Cells(j, 1).Value, searchChar, vbTextCompare) > 0 Then
Cells(j, 1).EntireRow.Delete
End If
Next j
Next i
End Sub
```
需要注意的是,此代码仅仅是一个示例,并不能保证适用于所有情况。如果你的数据集太大,此代码可能会执行很长时间并且可能会导致Excel无响应。因此,你可能需要优化此代码,例如采用更快的查找算法,或者将查找和删除操作分开执行。
阅读全文