在vba中返回vlookup函数的地址

时间:2018-09-05 13:33:07

标签: excel vba excel-vba

我仔细阅读了所有关于该主题的指南,但没有一个可以解决我的问题。 我想找到此vlookup函数的单元格地址:

INSERT INTO INSERT INTO mySQLServerTable (Col1, Col2, Col3, ...)
SELECT e.Col1, e.Col2, e.Col3, ... 
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
                'C:\path\to\myDatabase.accdb', 'admin', '', myExcelTable) AS e

(如果需要更改,当前变暗为变体) 我想找到找到的值的地址,并使它等于一个变量,如下所示:

vlookadd = Application.Lookup(partno, Sheet3.Range("A5:B46"), 2, False)

通过查找功能找到的值可以正常工作,但是在尝试了多种可能的解决方案后,地址始终为空

2 个答案:

答案 0 :(得分:3)

以及使用find

cells(worksheetfunction.match(partno,range("a5:a46"),0)+4,2).address

加号4是由于范围的起始行是5,例如第5行中的匹配项将返回1。

答案 1 :(得分:0)

根据评论,使用查找和偏移量就可以了。

Function getAddress(itemToFind As Variant, lookupRange As Range, columnOffset As Integer)

    getAddress = lookupRange.Find(What:=itemToFind).Offset(0, columnOffset).address

End Function

Sub Example()

    Dim batch1add As String

    Set batch1add = getAddress(partno, Sheet3.Range("A5:B46"), 2)

End Sub

如PEH在先前答案的建议中所建议的那样:合并一些错误处理将是明智的,因为两种实现均假定每次调用它们时该值都存在。