sytn.net
当前位置:首页 >> vBA使用vlookup >>

vBA使用vlookup

Sheets(i).Cells(K, 1) ActiveCell.Formula="=VLookup(Sheets(i).Cells(K, 3), 基础物料汇总!a:o, 1, False)" 试试

是不是数据类型不一致的关系?将代码改为下面的形式试试看吧!Label4.Caption = Application.WorksheetFunction.VLookup(val(TextBox4.Text), Worksheets("信息表").Range("A:B"), 2, 0)

当vlookup找不到匹配的结果,就会返回错误值#N/A,这个错误值使vba报错.为了避免找不到而报错,可以使用以下错误捕获 Sub test()On Error Resume NextCells(5, 1) = Application.WorksheetFunction.VLookup(Cells(5, 2),筏护摧咎诋侥搓鞋掸猫 Sheets("HR").Range("A:C"), 3, 0)End Sub当然,你使用find方法也可以,方法不唯一,就看你习惯用哪个.

在VBA中用下面的格式直接调用Application.WorksheetFunction.函数名 那你试试用这个宏.具体的参数你根据你的情况修改.Private Sub Worksheet_Change(ByVal Target As Range)If Target.Column = 2 Then Dim rng1 As Range aa = Target Set

数据量小的时候可以使用application.worksheetfunction.vlookup,数据量大、而且需要反复匹配同一组数据的时候,这样会非常慢,解决办法就是使用字典,基本的套路是:'扫描数据源 set dict=createobject("scripting.dictionary") arr=sheets(

既然使用了VBA就没必要再使用内置函数,VBA可以把VLookUp重新定义.

一是直接调用这个表函数,如:x = Application.VLookup(10, Range("A:B"), 2, 0) 二是用循环比较的方法来达到这个函数的功能 用第二种方法更灵活,如果是对单元格数据处理,最好借助数组,否则较慢

如果只是把这一句改用VBA的语法,那很简单,比如说:=Application.VLookup(Range("A2"),Range("C:D"),2,0) 当然,既然用VBA解决问题而数据量比较大的话,那就不太建议还使用Excel函数,可以用数组或者字典之类的方法来解决.

WorksheetFunction.VLookup 方法 在表格数组的首列查找值,并由此返回表格数组当前行中其他列的值.语法 表达式.VLookup(Arg1, Arg2, Arg3, Arg4) 表达式 一个代表 WorksheetFunction 对象的变量.参数 名称 必选/可选 数据类型 说明 Arg1

在 vba 里调用 excel 表中的公式函数,其调用形式是在函数的前面添加WorksheetFunction,例如:Sub test() Sheets("温度").Cells(1, 1) = WorksheetFunction.VLookup(1.09, Sheets("重命名").Range("A1:C10"), 3, 0) End Sub

网站首页 | 网站地图
All rights reserved Powered by www.sytn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com