只是想看看是否可以在表的第二列上使用 VLookup?我无休止地搜索并找不到答案,但我觉得这应该是可能的。
我要补充一点,VBA 不是我的强项。我来自 PHP/MySQL 背景,但在我的工作中没有使用任何一种的奢侈,所以我求助于学习 VBA。
到目前为止我的代码(简化):
Dim userEnviron As String
Dim rowId As Integer
rowId = 0
userEnviron = Environ("Username")
Dim tbladmin As ListObject
Set tbladmin = Sheets("Office Details").ListObjects("officeAdmin")
On Error Resume Next
rowId = Application.VLookup(userEnviron , Range(tbladmin), 4, False)
Run Code Online (Sandbox Code Playgroud)
此代码正在查找用户环境变量并在 tbldadmin 表中查找匹配项。该表的构造与标题类似:
Name UserID Email RowID
Tom Smith Tom the@the.com 2
我试图查找用户 ID 并返回名称,但是目前我已将代码设置为查找名称并返回 RowID(我添加了第二段代码来获取 RowID 并返回名称)
我可以看到很多完成此操作的非 VBA 示例,但是似乎没有一个使用表格。
可以按照描述使用 VLookup 来搜索第二列中的匹配项并从第一列返回一个值吗?如果我能搜索第二列,我会从最后一列返回。
如果您想要VLOOKUP但您的数据不在最左边的列中,您可以使用INDEX/MATCH来指定要查找的数据的位置以及要返回的数据。尝试这个:
rowId = WorksheetFunction.INDEX(Range("officeAdmin[RowID]"), WorksheetFunction.MATCH(userEnviron, Range("officeAdmin[UserID]"), 0))
Run Code Online (Sandbox Code Playgroud)
您可以更改Range("officeAdmin[RowID]")您要查找哪个列,例如Range("officeAdmin[Name]")将返回Name代替RowID。