东莞网站建设 牛魔网,网站建设业务员沟通需求,前端开发培训中心,免费给人做网站的实例需求#xff1a;根据第一列专业名称#xff0c;在“专业分类指导目录”中#xff0c;针对三个学历层次#xff08;研究生、本科生、专科生#xff09;分别查找对应专业类别#xff0c;填写在对应位置#xff0c;即截图中的黄色区域。 需要注意如下两点#xff1a; …实例需求根据第一列专业名称在“专业分类指导目录”中针对三个学历层次研究生、本科生、专科生分别查找对应专业类别填写在对应位置即截图中的黄色区域。 需要注意如下两点
“专业分类指导目录”中分隔符不统一例如下图中红框内的部分前两个分隔符为半角逗号后两个分隔符为全角逗号。有些专业名称可能包含在另一个专业名称中例如“兽医”是一个单独的专业同时也出现在“基础兽医学”“兽医医药”等专业中在查找时需要精确匹配。 示例代码如下。
Sub Demo()With Sheet2arr .Range(.[d4], .Cells(Rows.Count, 1).End(xlUp))End WithFor i LBound(arr) To UBound(arr)For j 2 To 4If arr(i, j) Then arr(i, j) , Replace(Replace(arr(i, j), , ), , ,) ,NextNextSet rngData Sheet4.[a1].CurrentRegionrngData.Offset(1, 1).ClearContentsbrr rngData.ValueFor r 2 To UBound(brr)iCnt 0major , brr(r, 1) ,For i LBound(arr) To UBound(arr)For j 2 To 4If InStr(1, arr(i, j), major) 0 Thenbrr(r, j) arr(i, 1)iCnt iCnt 1If iCnt 3 Then Exit ForEnd IfNextIf iCnt 3 Then Exit ForNextNextrngData.Value brr
End Sub【代码解析】 第3行代码需将数据表格“专业分类指导目录”加载到数组中。 第5~9行代码循环遍历每行数据。 第6~8行代码循环每行中的数据。 第7行代码将时两个Replace函数清除专业清单中的空格并将全角逗号替换为半角逗号并且在字符串的首位附加一个半角逗号这样可以更容易的实现精确匹配。 第10~13行代码需将需要填写的数据表格加载到数组中。 第11行代码清空需要填写的区域截图中黄色区域。 第13~26行代码循环遍历每行数据。 第15行代码构建查找关键字此处同样在专业名称字符串的首位附加一个半角逗号。
精确匹配的实现原理如下例如需要查找“兽医”专业那么实际查找关键字为,兽医,在下面两个字符串中仅能匹配第一个而不会出现错误匹配。
,基础兽医学,兽医,临床兽医学,,基础兽医学,预防兽医学,临床兽医学,
第16~25行代码双层循环在“专业分类指导目录”中查找关键字。 第19行代码提取对应的专业列表 第27行代码将查找结果更新到工作表中。