如何用vba在excel表格的限定范围内查找某一值,并返回该值所在的列。

如题所述

第1个回答  2015-01-07
sub a()
    dim rng as range,rngSearch as range
    dim vl as string
    set rng=range("A1:B100")
    vl="AAA" 
    set rngSearch=rng.find(what:=vl)
    if not rngSearch is nothing then msgbox vl.column
end sub

追问

我水平比较差没看懂。能具体吗?比方说excel名为a,excel中的sheet名为b,要查找sheet中的1到100行,1到100列中的“qq”字符串所在的位置并返回“qq”所在列的“aq”的位置

追答sub a()
    dim rng as range,rngSearch as range
    dim vl as string
    'set rng=range("A1:B100")'定义区域为A1到B100
    set rng=worksheets("b").[a1].resize(100,100)'100列不知道对应的列好懒得数了,这里用resize
    '或者可以用set rng=worksheets("b").range([a1],cells(100,100),这样也是100行100列
    vl="qq" 
    set rngSearch=rng.find(what:=vl)'在刚才定义的rng区域里查找vl字符串
    'if not rngSearch is nothing then msgbox rngSearch.column'如果找到了,就返回列号
    if not rngSearch is nothing then msgbox split(rngSearch.address(1,0),"$")(0)'你的要求是字母列号,所以用address返回地址,然后分割$获取字母列号
end sub

本回答被网友采纳
相似回答