ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 横向查找自定义函数

横向查找自定义函数

作者:绿色风 分类: 时间:2022-08-18 浏览:66
楼主
DJ_Soo
Q:在SQL in Excel的使用中,可能会将查询到的数据赋值给数组,这个数组是横向的,如果我不对其进行transpose,如果我想在这个数组中进行类似于hlookup的查找,应该如何自定义函数?
A:ALT+F11→VBE编辑环境→右键插入模块→输入以下代码:
  1. Option Explicit
  2. Option Compare Text '忽略大小写

  3. '防hlookup查询数组中对应数据,Ro根据lbound不同要可以自动调整
  4. Function hLkup(ByVal Cer As String, arr_Data As Variant, Ro As Long)
  5.     Dim Col As Long
  6.     Dim lstCol As Long
  7.     Dim fstRo As Long
  8.     Dim arr As Variant
  9.     arr = arr_Data      '若arr_data是range类型,转换为数组
  10.     lstCol = UBound(arr, 2)
  11.     fstRo = LBound(arr)     '如果是sql查询到的数组赋值,可能最小下标为0
  12.     For Col = LBound(arr, 2) To lstCol
  13.         If arr(fstRo, Col) Like Cer Then    'like:可用通配符进行模糊查找
  14.             hLkup = arr(Ro - 1 + fstRo, Col)
  15.             Exit Function
  16.         End If
  17.     Next Col
  18. End Function
附件中例子在工作表中使用,但个人认为在VBA的代码编辑中才是最常用的,所以放弃使用Excel的worksheetfunction

hlkup.rar

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap