VBA提取A列中不包含B列值,并将结果保存在C列
时间: 2024-09-28 07:10:01 浏览: 39
在VBA中,你可以使用`IF NOT IN`条件语句来实现这个功能。假设你的数据存储在一个Excel工作表中,A列为需要检查的列,B列为排除的列表,C列为新生成的结果列。以下是一个简单的示例:
```vba
Sub ExtractWithout()
Dim ws As Worksheet '设置当前工作表
Set ws = ThisWorkbook.Worksheets("Sheet1") '替换为你的工作表名
Dim AColumn As Range, BList As Variant, CColumn As Range
Set AColumn = ws.Range("A1:A" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row)
BList = ws.Range("B1:B" & ws.Cells(ws.Rows.Count, "B").End(xlUp).Row).Value '获取B列的值
Set CColumn = ws.Range("C1")
For Each cell In AColumn
If Not IsError(Application.Match(cell.Value, BList, 0)) Then '查找cell不在BList中
CColumn.Offset(Col:=0, Row:=CColumn.Row + 1) = cell.Value '添加到C列
End If
Next cell
CColumn.Resize(AColumn.Rows.Count - 1, 1) '调整C列大小以排除首行(可能是标题)
End Sub
```
在这个代码里,我们遍历A列中的每个单元格,如果该值没有出现在B列(通过`Application.Match`函数),则将其添加到C列。最后,我们会自动调整C列的大小以只包含实际的匹配项。
阅读全文