【问题标题】:Vlookup Macro Erroring OutVlookup 宏出错
【发布时间】:2018-04-03 13:47:35
【问题描述】:

下面是我的 ma​​crovlookup 代码,我不断收到 *.

我正在尝试使用vlookup,它将看到用另一个按钮选择的随机单词并拉出定义。

在 Excel 中添加常规 vlookup 代码:=VLOOKUP(B2,Sheet1!A2:B500,2,FALSE)

Sub Definition2()

Dim lookupvalue As Variant
Dim lookuprange As Variant

lookupvalue = Sheet2.Range("B2").Value
Set lookuprange = Sheet1.Range("A2:B500")

'- 2: execute vlookup functionwith variables above -'
vresult = Application.VLookup(lookupvalue, lookuprange, 2, False)

Range("J3").Value = vresult

End Sub

【问题讨论】:

  • 查找是否作为表格中的公式工作?
  • 是的,我在 excel 中的 VLookup 公式效果很好,但我的按钮没有返回正确的值,而是返回 n/a

标签: vba excel vlookup


【解决方案1】:

更新答案

不是用行指定范围,而是将 vlookuprange 设置为整列

第一答案

你不能“设置”一个声明为字符串的变量,因为它不是一个对象

Sub Definition2()

Dim lookupvalue As String
Dim lookuprange As Range
Dim lookupcolnum As Single

lookupvalue = Sheet2.Range("B3").Value
Set lookuprange = Sheet1.Range("A:B")

'- 2: execute vlookup functionwith variables above -'
vresult = Application.VLookup(lookupvalue, lookuprange, 2, False)

Range("J3").Value = vresult

End Sub

【讨论】:

  • 谢谢,我不再收到错误,但我现在返回 N/A 而不是定义
  • 如果你得到 N/A 是因为在查找范围内找不到查找值:)
  • 这就是我困惑的地方!如果我在 excel 中使用相同的查找值和范围进行常规 vlookup,我会返回我需要的值,但我无法使用 vba 编码返回值
  • 使用常规 vlookup 记录宏并用代码更新您的问题,您的语法或数据可能需要修改
  • 我更新了答案,尝试仅使用列设置 vlookrange,检查我的答案!
猜你喜欢
  • 2015-06-09
  • 1970-01-01
  • 1970-01-01
  • 2013-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-23
相关资源
最近更新 更多