【问题标题】:VLookup throws errors for some values but not othersVLookup 会为某些值引发错误,但不会为其他值引发错误
【发布时间】:2015-11-05 02:01:41
【问题描述】:

当我搜索某些字符串值而不是其他值时,VLookup 会引发错误:

运行时错误“1004”:无法获取工作表函数类的 VLookup 属性

显然,此错误表明没有找到任何值,但在我看来,值匹配!

这是隐藏字符或空格或我看不到的东西的结果吗?

如何确保一个页面上的值实际上与另一个页面上的值相同?

另外,我想也许我没有在我认为我正在搜索的地方搜索,这可以解释为什么我找不到某些值。作为测试,我更改了列中的返回值,并且更改正确返回。然后我更改了应该引发错误但没有引发错误的查找值。相反,它返回了一个不同的值。我搜索了不存在的“United States”,而是返回了“United Kingdom”的值。

【问题讨论】:

  • 在没有worksheetFunction 的情况下尝试你的vlookup 只需Application.Vlookup...
  • 您要查找的值是数字还是文本?它们的格式是数字还是文本?
  • 在您的数据集中使用 clean 函数和 trim 函数 =Trim(Clean(A1)) 这应该会删除任何不需要的字符。
  • @scott - 使用 worksheetFunction 和 Application 表单有什么区别?此外,当我尝试只取出代码的 worksheetFunction 部分时,我收到类型不匹配。
  • @DavidZemens 你是对的,最好有一个解释以供将来参考。在假设这是问题之前,我知道我想查看代码。 :) 但在最后一次编辑时,OP 可能已经解决了这个问题。

标签: excel vba vlookup


【解决方案1】:

好的,手掌面对面的时刻。我正在搜索的数据集相当大,所以当我设置命名范围时,它只设置在数据的子集上!不知道这是怎么发生的……

这仍然不能解释“United Statess”返回“United Kingdom”的不一致结果,这只是让调试变得更加困难。

感谢您的帮助。

【讨论】:

  • 您使用的完整公式是什么?在某些情况下,完全可以预期 VLOOKUP 将返回“近似”匹配,除非您使用精确匹配参数,或者数据是 alpha 排序的。
  • @DavidZemens 是的,我相信我将 range_lookup 值设置为 true,但我没有意识到返回的近似匹配。 叹息生活和学习。
  • 我在 2008 年也被这件事烧死了。在我们发现错误之前,我的已经联系了大约十几个客户!干杯。
猜你喜欢
  • 2020-01-16
  • 1970-01-01
  • 2012-07-26
  • 2014-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-15
  • 1970-01-01
相关资源
最近更新 更多