用VBA编写一个过程,作用是分别找出sheet1和sheet2中,sheet1和sheet2中,列为“工卡号”下相同的单元格,并在sheet1中将其用不同的颜色标识出来,同时在列名为“工卡号”的旁边新插入一列,将与sheet1相同工卡号的sheet.name写进单元格
时间: 2024-01-23 18:03:54 浏览: 101
好的,我可以为您编写这个VBA过程。请按照以下步骤操作:
1. 打开Excel文件并按下Alt + F11打开VBA编辑器。
2. 在VBA编辑器中,选择要添加代码的工作簿。
3. 在工作簿窗口中,右键单击并选择“插入”>“模块”。
4. 在新模块中输入以下代码:
```
Sub FindAndColorDuplicates()
Dim ws1 As Worksheet, ws2 As Worksheet
Dim lastRow1 As Long, lastRow2 As Long
Dim i As Long, j As Long
Dim cell1 As Range, cell2 As Range
Dim cardNum As String
Set ws1 = ThisWorkbook.Sheets("Sheet1")
Set ws2 = ThisWorkbook.Sheets("Sheet2")
lastRow1 = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row
lastRow2 = ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row
'Loop through each row in Sheet1
For i = 2 To lastRow1
cardNum = ws1.Cells(i, "A").Value
If cardNum <> "" Then
'Loop through each row in Sheet2
For j = 2 To lastRow2
'Check if card number matches
If cardNum = ws2.Cells(j, "A").Value Then
'Color the cell in Sheet1
Set cell1 = ws1.Cells(i, "A")
cell1.Interior.Color = RGB(255, 255, 0) 'Change color here
'Write sheet name in new column
ws1.Cells(i, "B").Value = ws2.Name
'Exit inner loop since match is found
Exit For
End If
Next j
End If
Next i
End Sub
```
5. 关闭VBA编辑器并回到您的工作簿。
6. 在工作簿中,按下Alt + F8打开宏对话框。
7. 选择“FindAndColorDuplicates”并单击“运行”。
8. 宏将在Sheet1中找到与Sheet2中相同的工卡号,并将其用黄色标记出来。在Sheet1中,新的一列将被添加在工卡号列的右侧,并将Sheet2的名称写入与匹配的行中。
请注意,此代码假定工卡号列为A列,新列将添加在B列。如果您的列不同,请相应更改代码中的列号。
阅读全文