vBA用表2第2列内容去比對表1中第9列内容是否有相同的,如果有在表2相應數據的後面寫上已點檢,沒有就寫上未點檢
时间: 2024-03-03 09:52:42 浏览: 68
以下是 vBA 代码的实现:
```vb
Sub CompareColumns()
Dim ws1 As Worksheet, ws2 As Worksheet
Dim lastRow1 As Long, lastRow2 As Long
Dim i As Long, j As Long
Dim check As Boolean
' 定义需要操作的两个工作表
Set ws1 = ThisWorkbook.Worksheets("表1")
Set ws2 = ThisWorkbook.Worksheets("表2")
' 获取表1和表2的最后一行
lastRow1 = ws1.Cells(ws1.Rows.Count, 9).End(xlUp).Row
lastRow2 = ws2.Cells(ws2.Rows.Count, 2).End(xlUp).Row
' 循环比较表1和表2的数据
For i = 2 To lastRow2 ' 从第2行开始,因为第1行是表头
check = False ' 初始化 check 变量
For j = 2 To lastRow1
If ws2.Cells(i, 2).Value = ws1.Cells(j, 9).Value Then
check = True ' 如果有相同的数据,将 check 设为 True
Exit For ' 找到相同的数据后退出循环
End If
Next j
' 根据 check 变量的值,在表2相应数据的后面写上已点检或未点检
If check = True Then
ws2.Cells(i, 3).Value = "已点检"
Else
ws2.Cells(i, 3).Value = "未点检"
End If
Next i
End Sub
```
这个代码中,我们首先定义了需要操作的两个工作表 ws1 和 ws2,然后获取它们的最后一行。接着,我们循环比较表1和表2的数据,如果在表1中找到了与表2中相应数据的第9列相同的数据,则将 check 变量设为 True。最后根据 check 变量的值,在表2相应数据的后面写上已点检或未点检。
阅读全文