需求:工作中需要在一个有300多列的主文件中查找15列左右的数据,但是这个主文件的列顺序经常变化。导致每次在使用VLOOKUP查询时,要先确认一下列标是否正确,如果不正确,要先修改列标。这个工作属于重复性工作,每次要花费10分钟左右。可以说我已经忍了很久了。最近两个礼拜VBA知识和经验又增长了一点,今天我趁热打铁,把这个工作也给自动化了吧。
方法:自定义一个Excel函数(findCN)
代码:
Function findCN(ByVal vlRange, ByVal columnName) For Each cel In vlRange If cel.Value = columnName Then findCN = cel.Column Exit For End If Next End Function
其中,columnName为要查询的列名,vlRange为要查询的列名所在的表头区域。
应用示例:
=VLOOKUP(E3,vl_sv,findCN(vl_svHeads,"BUSINESS_CATEGORY")-2,FALSE)