gpt4 book ai didi

vba - Excel VBA VLookup 在表格第二列上

转载 作者:行者123 更新时间:2023-12-02 13:37:16 26 4
gpt4 key购买 nike

只是想看看是否可以在表的第二列上使用 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)

此代码正在查找用户环境变量并在 tbldadmin 表中查找匹配项。该表的构造方式与标题类似:

名称 用户 ID 电子邮件 RowID
汤姆·史密斯 汤姆 the@the.com 2

我正在尝试查找 UserID 并返回名称,但是目前我已设置代码来查找名称并返回 RowID(我添加了第二段代码来获取 RowID 并返回名称)

我可以看到很多非 VBA 示例都完成了此操作,但似乎没有一个使用表格。

是否可以按照描述使用 VLookup 在第二列中搜索匹配项并从第一列返回值?如果我可以搜索第二列,我就会从最后一列返回。

最佳答案

如果您想要VLOOKUP,但您的数据不在最左边的列中,您可以使用INDEX/MATCH,它允许您指定位置您正在查找的数据以及您想要返回的数据。试试这个:

rowId = WorksheetFunction.INDEX(Range("officeAdmin[RowID]"), WorksheetFunction.MATCH(userEnviron, Range("officeAdmin[UserID]"), 0))

您可以更改要查找的任何列的 Range("officeAdmin[RowID]"),例如 Range("officeAdmin[Name]") 将返回Name 而不是 RowID

关于vba - Excel VBA VLookup 在表格第二列上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42201646/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com