vba中的查匹配函数
最朴树的find
例⼦:
Range("G4") = Range("B:B").Find(Range("G3")).Row
解释:
Range(“B:B”)表⽰要查的位置在第B列
Find(Range(“G3”))表⽰要查G3单元格中的值
Row返回查到的位置的⾏数
⼯作表函数Match
例⼦
Range("A1") = application.WorksheetFunction.Match(Range("G3"), Range("B:B"), 0)
解释:
application.WorksheetFunction.Match是函数的完整路径
Match函数的各个参数的说明
match(Lookup_value, Lookup_array , Match_type)。
Lookup_value(需要在表中查的值) -
Lookup_array(可能包含所要查的值的连续单元格区域,Lookup_array
必须为数组或数组引⽤)
Match_Type(数字 -1、0 或 1。Match_type 指明 Microsoft Excel 如何将
lookup_value 与 lookup_array 中的值进⾏匹配)
如果 match_type 为1,函数 MATCH 查⼩于或等于 lookup_value 的最⼤数值。Lookup_array 必须按升序排列:...、-2、-1、0、1、2, ...、A-Z、如果 match_type 为0,函数 MATCH 查等于 lookup_value 的第⼀个数值。Lookup_array 可以按任何顺序排列。
如果 match_type 为 -1,函数 MATCH 查⼤于或等于 lookup_value 的最⼩数值。Lookup_array 必须按降序排列:TRUE、FALSE、Z-A、 ...2、如果省略 match_type,则假设为1。
此外:
函数 MATCH 返回 lookup_array 中⽬标值的位置,⽽不是数值本⾝。例如,MATCH("b",{"a","b","c"},0) 返回 2,即"b"在数组 {"a","b","c"} 中的相应位置。
匹配⽂本值时,函数 MATCH 不区分⼤⼩写字母。
如果函数 MATCH 未能到匹配值,则返回错误值 #N/A。value函数什么意思
如果 match_type 为 0 且 lookup_value 为⽂本,则可以在 lookup_value 中使⽤通配符、问号 (?) 和星号 (*)。问号匹配任意单个字符;星号匹配任意字符序列
。如果您要查实际的问号或星号本⾝,请在该字符前键⼊波形符 (~)。
⼯作表函数vlookup
这个函数⽐较⾼⼤上,适⽤的地⽅,⽐如要查某个产品型号,返回该型号的单价
当然也可以⽤find进⾏查
⽤vloookup的话就⽐较简单:
这个函数的⽤法如下: vlookup(lookup_value, table_array, col_index, range_lookup)
Lookup_value - 要在表格数组第⼀列中搜索的值。Lookup_value 可以为值或引⽤。如果 lookup_value ⼩于 table_array 第⼀列中的最⼩值,则 VLOOKUP 将返回错误值 #N/A。
Table_array - 两列或更多列数据。可以使⽤对区域或区域名称的引⽤。table_array 第⼀列中的值是由 lookup_value 搜索的值。这些值可以是⽂本、数字或逻辑值。不区分⼤⼩写。
Col_index_num - table_array 中待返回的匹配值的列号。col_index_num 为 1 时,返回 table_array 第⼀列中的值;col_index_num 为 2 时,返回 table_array 第⼆列中的值,依此类推。
Range_lookup-⼀个逻辑值,指定是否希望VLookup⽅法查精确匹配还是近似匹配:其他说明
Mrow = Range ("B:B").Find(Range ("G3")).Row ' 在 B 列中查匹配 G3 单元格的⾏
Range ("G4") = Range ("D" & Mrow) ' 在 G4 单元格中返回对应⾏ D 列的数据
Range ("G4") = Application.WorksheetFunction.VLookup(Range ("G3"), Range ("B:E"), 3, 0)
如果 Range_lookup 为 TRUE  或被省略,则返回精确匹配值或近似匹配值。如果不到精确匹配值,则返回下⼀个⼩于 lookup_value 的最⼤值。 table_arra    如果 Range_lookup 为 FALSE ,则VLookup ⽅法将只查完全匹配。在这种情况下,不需要 table_array 第⼀列中的值进⾏排序。如果有两个或多个值 table 如果 range_lookup 为 FALSE ,⽽ lookup_value 为⽂本,则可以在 lookup_value 中使⽤通配符,包括问号 (?) 和星号 (*)。问号可匹配任意的单个字符;星号可

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。