EXCEL-VBA
excel中判断某个sheet中数据是否在另一个sheet中
问题:有一个需求,sheet1中定义了一些词,sheet2中有 ID 和 描述,规定如果sheet2中的描述的字段在sheet1中,那么认为是合法的数据,则取出sheet2中的ID。
可以用vba实现:
1.背景:sheet6中的B列定义了一些词;sheet7中是从数据库取出的数据;sheet8是我们准备存放数据的空白表格;
2.在sheet7中编写vba脚本:
Option Explicit
Sub test()
Dim i, j, g, pos_len, mao_pos, k, l As Integer
Dim b As Boolean
Dim pos_num As String
i = 1
j = 1
g = 1
k = 1
l = 1
b = True
'Debug.Print Cells(i, "A") <> Empty
Do While Cells(i, "A") <> Empty And Cells(i, "A") <> ""
If InStr(1, Cells(i, "A"), "id", 0) > 0 Then
Do While Worksheets("Sheet6").Cells(g, "B") <> "" And b
j = i
If InStr(1, Cells(j + 1, "A"), Worksheets("Sheet6").Cells(g, "B"), 0) > 0 Then '有问题:无法完全匹配
Range("A" & i).Interior.Color = RGB(255, 255, 0)
pos_len = Len(Cells(i, "A"))
mao_pos = InStr(Cells(i, "A"), ":")
pos_num = Mid(Cells(i, "A"), mao_pos + 1, pos_len - mao_pos)
Worksheets("Sheet8").Cells(k, "A").Value = pos_num
k = k + 1
b = False
End If
g = g + 1
Loop
b = True
g = 1
End If
i = i + 1
Loop
End Sub
3.运行宏,出现的结果如下,标黄的为符合的数据,且在sheet8中提取出来。