【问题标题】:Unable to lookup a date using vba vlookup无法使用 vba vlookup 查找日期
【发布时间】:2014-01-07 00:03:31
【问题描述】:

我有一个 Excel 工作表,其中 A 列包含日期,B 列包含相应的日期。 例如。 A2=01/01/14 和 B2=Wed 等等。

我正在尝试使用示例 vba 代码检索 B2 中的日期,但我不断收到错误消息 "运行时错误 '1004' 无法获取 worksheetFunction 类的 Vlookup 属性"

请查看我的代码并告知问题所在。谢谢。

 Sub Button1_Click()


Dim lookup_value As String
Dim lookup_table As Range

Let lookup_value = "1/1/2014"
Set lookup_table = Range("A:B")

the_day = WorksheetFunction.VLookup(CDate(lookup_value), lookup_table, 2, False)


Range("D7") = the_day

End Sub

请注意,我想手动传递 lookup_value 而不是查找单元格 A2。

【问题讨论】:

  • 我很确定这条消息正在发生,因为 VLookup 函数没有找到任何东西。

标签: excel vlookup vba


【解决方案1】:

VLookup 对数据类型很敏感。并且您的 VBA 例程正在寻找 DATE 数据类型,但 Excel 工作表中不存在此类数据类型。因此,您需要将字符串 lookup_value 转换为与工作表上的内容兼容的数据类型。这可能是 Long(整个日期)或 Double(如果您包括时间)。

试试:

the_day = WorksheetFunction.VLookup(CLng(CDate(lookup_value)), lookup_table, 2, False)

【讨论】:

  • 这是一站式解决方案!非常感谢。有用。感谢您的帮助。
  • Excel 不能与 VBA 的 DATE 类型一起使用是荒谬的。微软应该修复的许多 Excel 怪癖之一。在找到您的答案之前,我浪费了几个小时。谢谢!
猜你喜欢
  • 1970-01-01
  • 2017-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 2013-08-06
相关资源
最近更新 更多