- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我运行这组代码,它返回一个错误:
运行时错误“1004”无法获取 WorksheetFunction 类的 Vlookup 属性。
我已经在另一个子例程中进行了一个vlookup。这段代码有什么问题吗?我进行调试,错误出现在策略框中。
Sub LinkPolicyNum()
Dim r As Integer
Dim policynum As Variant
Dim lookup_num As Range
Dim policybox As Variant
r = ActiveCell.Row
'Row number of the Selected Cell
policynum = ActiveSheet.Cells(r, 3).Value
Set lookup_num = ThisWorkbook.Sheets("PolicyDetails").Range("a1:z5000")
policybox = Application.WorksheetFunction.VLookup(policynum, lookup_num, 3, False)
'to match the policy number to the policy details
MsgBox policynum
MsgBox policybox
End Sub
最佳答案
您的代码似乎没有任何问题。您将看到使用 WorksheetFunction
版本的函数时发生的结果,并且没有返回结果。具体来说,它们会抛出错误并中断 VBA 的执行。在这种情况下,如果您在工作簿中而不是在 VBA 中尝试相同的公式,您将收到某种形式的错误(可能是 #N/A
或 #VALUE!
) .
如果您想防止这种情况发生,最简单的方法就是更改为使用 Application.VLookup
而不是 Application.WorksheetFunction.VLookup
。尽管没有智能感知来帮助执行此功能,但除了错误处理之外,它的行为与其他功能相同。如果函数的非 WorksheetFunction
版本出现错误,它将返回错误而不是抛出错误。这允许您检查错误,然后继续执行您的代码。
如果您认为应该在此处使用 VLOOKUP
查找值,那么您可以开始检查文本/数字和其他类似内容之间是否不匹配。我会检查公式而不是 VBA。
这是使用其他函数形式并捕获错误的示例。
Sub LinkPolicyNum()
Dim r As Integer
Dim policynum As Variant
Dim lookup_num As Range
Dim policybox As Variant
r = ActiveCell.Row
'Row number of the Selected Cell
policynum = ActiveSheet.Cells(r, 3).Value
Set lookup_num = ThisWorkbook.Sheets("PolicyDetails").Range("a1:z5000")
policybox = Application.VLookup(policynum, lookup_num, 3, False)
'to match the policy number to the policy details
If IsError(policybox) Then
'possibly do something with the "not found" case
Else
MsgBox policynum
MsgBox policybox
End If
End Sub
此问题引用:http://dailydoseofexcel.com/archives/2004/09/24/the-worksheetfunction-method/
关于vba - 无法使 vlookup 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29939770/
在过去的一年里,我对 Excel 已经相当熟练了,我已经为下一步做好了准备,开始使用 VBA。 我尝试实现以下目标: 我想创建一个可以运行多个 Vlookups 的工具来自不同的数据源,并将所有数据组
是否可以在 VLOOKUP 公式中插入 VLOOKUP 以搜索特定的 table_array? 这是我要使用的公式: =VLOOKUP($F492,CONCATENATE("'[Budget esti
我正在尝试 vlookup从一张纸到另一张纸的一些数据。 每当我尝试 Vlookup使用 VBA:结果是 Application.WorksheetFunction.vlookup代替Applicat
我正在寻找 vlookup 的替代方案,在感兴趣的上下文中提高性能。 上下文如下: 我有一个很大的 {key;data} 数据集(约 100'000 条记录) 我想对数据集执行大量 VLOOKUP 操
我有以下脚本,但收到 VLOOKUP 错误: Dim DataRange, LookupRange As Range Dim Data, Test As Variant Set DataRange =
我对 Pandas 和 Python 还很陌生,我根本不知道如何做一些在 Excel 中很容易完成的事情。我希望能从社区中得到一点帮助。 假设我有以下内容,这是一个与梦幻足球相关的 df,它具有三列
我有一个问题,http://goo.gl/i82eA这是我具有所需输出的示例数据。目前我有一个用户定义的函数,它手动使用许多 if 语句来完成这项工作,但如果它在列中找到某种颜色并返回与其对应的颜色图
我想创建一个超过 2 个工作表的 VLOOKUP,并查看三个查找值,其中一个值与中间的 - 连接起来。 基础数据太大,无法放入此处(30k 字符限制),因此文件如下: https://wetransf
我正在尝试将大型数据集及其处理从 Excel 转换到 Python/Pandas,但在尝试实现“IF(col A = x, VLOOKUP(col表 Y 中的 B),否则,VLOOKUP(表 Z 中的
我有两张纸。两张纸的第一列都有用户 ID,但两张纸之间只有一些 ID 重叠。我想将 userids 保留在第一张表中,但在第二张表中,第二列有一个我想要的数据点。对于第一张表中也存在于第二张表中的
当单元格值更改时,我正在尝试在 VBA 中执行 Vlookup,根据已更改的单元格查找值。 目前我有: Private Sub Worksheet_Change(ByVal Target As Ran
我正在同一个工作表上执行循环 vlookup,但出现运行时错误:1004:无法使用以下代码获取 WorksheetFunction 类的 Vlookup 属性: Sub Test()
我有一张表,其中包含农田和每个田地中包含的英亩数。这些领域是共同拥有的,并按百分比分配。 字段拆分表: 目前,我为每个字段创建一个新行,并为每个字段中包含的英亩数使用 sumif,然后使用另一个 vl
我在工作表 1 中为城市创建了一个多选下拉列表,与下拉列表关联的邮政编码在工作表 2 中。 这就是我的工作表 2 的外观。 1.) 允许用户从下拉列表中选择多个城市。用户选择城市后,我想在一个单元格中
我想从一张表中获取多行数据 sheet1进入另一张纸上的单个单元格sheet2基于查找。 例如,一张纸上有数据: sheet1 我想根据 id 查找数据并将所有相关行返回到一个单元格中,如下所示: s
我的问题是我正在尝试动态更改我的 vlookup 开始的位置。我有一个嵌套 If 和 vlookups 的基本工作解决方案。目前 If 语句检查 Vendor = A 等,然后执行 vlookup。如
我的单元格包含用逗号分隔的文本,例如: apples, bananas, mango 每个单元格中的项目数量各不相同,有的有一个,有的多达 10 个。 我希望遍历单元格中的每个项目,然后对它们执行 v
我目前正在为 excel 使用 VLOOKUP 函数,我想知道 VLOOKUP 是否真的比较单元格,还是只是直接使用它对面的单元格? 这是我的公式“=VLOOKUP(A2,Sheet3!A2:B181
Col A 有 ItemID Col B 有 Model_Num Col C 有一长串 Model_Num .在 Col D 中,我想查找 Model_Num Col C 并把 ItemID item
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 9年前关闭。 Improve this que
我是一名优秀的程序员,十分优秀!