我们在工作中经常遇到表格处理的情况,就是有时我们需要用到模糊匹配,这就需要lookup函数或者Vlookup函数以及通配符才可以实现,对应好多小白来说,一不小心就出错了。今天我们来学习一下,通过deepseek编写的代码,来实现直接点击就可以实现
1、首先我们把我们需要解决的问题尽可能描述,比如我模糊匹配我是这样描述的:WPS里面Sheet1表的A列有简短的名称,Sheet2的A列有完整的名称,需要用VB把Sheet2里面A列完整的名称匹配到Sheet1里面的B列一一对应,通过通配符实现
2、之后他就会生成如下代码,我们直接不需要改就可以复制进去
Sub MatchNamesOptimized()
Dim ws1 As Worksheet, ws2 As Worksheet
Set ws1 = ThisWorkbook.Sheets("Sheet1")
Set ws2 = ThisWorkbook.Sheets("Sheet2")
' 将Sheet2的A列数据一次性读入数组
Dim sheet2Names() As Variant
sheet2Names = ws2.Range("A2:A" & ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row).Value
' 遍历Sheet1的A列
For i = 2 To ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row
Dim shortName As String
shortName = ws1.Cells(i, 1).Value
' 在数组中进行匹配
For j = 1 To UBound(sheet2Names, 1)
If sheet2Names(j, 1) Like "*" & shortName & "*" Then
ws1.Cells(i, 2).Value = sheet2Names(j, 1)
Exit For
End If
Next j
Next i
End Sub
3、我们再把我们需要模糊匹配的表格打开,有2个工作表,第一个是我们需要模糊匹配的,第二个是名称的全称
4、我们在工具栏里面选择开发工具再选择查看代码
5、然后我们在选择第一个工作表,点击插入,再选择模块
6、我们再把deepseek生成的代码复制进去
7、然后我们选择运行,再点击运行子过程/用户窗体,这样稍等一会后,就会出结果了
8、我们可以看到,如果能匹配的就能匹配完整的名称,如果再表二里面匹配不到的,就显示的是空,这对于对函数不熟悉的小伙伴来说特别方便。
另外小编也发给大家,需要的小伙伴赞赏任意金额获取(注意先关注再赞赏)
下载完成后点开开发工具,然后点击运行宏
点击运行宏后出现如下宏,我们直接点击运行就可以
领取专属 10元无门槛券
私享最新 技术干货