Excel交流网
  • 设为首页|收藏本站|手机版
  • Excel-教程-技巧-培训视频

  • 网站首页
  • Excel教程
  • 新闻动态
  • Excel资源
  • 关于我们

Excel教程

Excel操作
Excel函数
Excel图表
Excel VBA
Excel 行业应用

联系方式

Excel中交流网 联系方式

QQ:18449932 


网  址:www.excel-cn.com  

当前位置:网站首页 > Excel教程 > Excel VBA
Excel VBA

用VBA代替VLOOKUP函数引用数据

VLOOKUP函数是一个纵向查找函数,它是按列查找,最终返回该列所需查询列序所对应的值。

用VLOOKUP函数来查找很方便,不过它的缺点很明显:

1、速度慢,特别是在数据量大的情况下。

2、每个单元格你都要维护好公式,如果对应不到会出现#N/A,不是很美观,当然你可以用别的公式来消除,不过这又增加了公式的复杂度。

用VBA代替VLOOKUP函数,不仅速度快,而且把它单独做成模版,下次有类似对应操作的需求时,可以直接复制粘贴进去来使用,不用再维护调整公式数量了,通用性强。


如下图,我们需将图二中的数据引用到图一中.


Excel技巧


Excel技巧


方法一、最笨的方法就是按照姓名筛选手工填或者CTRL+F批量替代,数据量大了根本不好使。

方法二、在表2学号列填写VLOOKUP函数,比如G2=VLOOKUP(F2,A1:B4,2,FALSE), G3=VLOOKUP(F3,A1:B4,2,FALSE),以此类推。

方法三、用VBA代码,按ALT+F11进入工程界面,输入右侧代码,运行就可以了。

代码如下图:

v3.jpg

Sub 引用()

  Dim i%, r%

  Dim arr1, arr2

  arr1 = Sheets("sheet1").[a1].CurrentRegion

  arr2 = Sheets("sheet2").[a1].CurrentRegion

  r = 1

  For r = 1 To UBound(arr2)

    For i = 1 To UBound(arr1)

      If arr2(r, 1) = arr1(i, 1) Then

        arr2(r, 2) = arr1(i, 3)

     Exit For

    End If

    Next

  Next

  Sheets("sheet2").[a1].Resize(UBound(arr2), 2) = arr2

End Sub


点击次数:  更新时间:2017-03-16 16:34:00  【打印此页】  【关闭】
上一条:清单前面的单元格打勾  下一条:EXCEL VBA用For Each给表格加目录
本站动态|在线留言|在线反馈|友情链接|会员中心|站内搜索|网站地图|网站管理

Excel交流网 版权所有 1999-2020 粤ICP备10043721号

QQ:18449932

免费Excel教程、Excel技巧、Excel培训、Excel函数公式、Excel图表、Excel VBA

Excel教程|Excel技巧|Excel培训|Excel函数公式|Excel图表|VBA

Powered by MetInfo 5.3.12 ©2008-2023  www.metinfo.cn