首页 > 解决方案 > 为用户表单框赋值时的多个 vlookup 语句

问题描述

早上好,

我创建了一个用户表单,用户可以在其中查找一个人的姓名,并返回(除其他外)他们的地址。用于地址查找的语句如下所示:

.Address = Application.WorksheetFunction.VLookup(Me.Name1, _
Worksheets("Caselist").Range("Lookup"), 10, 0)

这工作得很好。从那时起,我将地址单元格拆分为 3 个单独的单元格(街道、城市、邮编)。我想在将所有 3 个单元格中的值添加到用户表单之前将它们组合起来,以便用户可以看到完整的地址。我试过这样的说法:

.Address = Application.WorksheetFunction.VLookup(Me.Name1,Worksheets("Caselist") _ 
.Range("Lookup"), 10, 0) & _ 
Application.WorksheetFunction.VLookup(Me.Name1,Worksheets("Caselist") _ 
.Range("Lookup"), 11, 0) & " MI, " & _
Application.WorksheetFunction.VLookup(Me.Name1,Worksheets("Caselist") _
.Range("Lookup"), 12, 0)

我知道这很难看,但它本质上是 3 个 Vlookup 语句,使用“&”连接在一起以创建一个字符串。当我尝试这样做时,我收到以下错误

“无法获取 WorksheetFunction 类的 VLookup 属性”

我还没有找到任何方法可以在线成功格式化。任何想法如何做到这一点?

标签: excelvlookupuserformvba

解决方案


我 90% 确定您的命名范围Lookup不会扩展到第 11 和 12 列。尝试使用Application.WorksheetFunction.Vlookup并要求在范围之外返回列将返回

运行时错误“1004” - 无法获取 WorksheetFunction 类的 VLookup 属性。

这是在代码中使用命名范围的困境之一——这不是您在调试时可以清楚地看到的东西,而且您收到的错误相当模棱两可:)。


推荐阅读