【发布时间】:2022-12-22 02:59:11
【问题描述】:
我想构建一个表单,该表单可以选择使用之前提交的内容进行预填充。
有人可以每三个月提交一次表格(评估)并随着时间的推移审查他们的进度。通过预先填充以前提交的内容,他们不必从头开始。
我相信我需要使用 vlookup 来查看提交日期并返回与最近(或最大)日期对应的值。
我收到:
运行时错误“1004”:对象“WorksheetFunction”的方法“VLookup”失败。
Sub vlookup1() Set myrange = Range("data_table") Name = Application.WorksheetFunction.Max(Range("date_range")) answer.Value = Application.WorksheetFunction.vlookup(Name, myrange, 4, False)
【问题讨论】:
-
myrange是否至少有 4 列?myrange最左边的列中是否可以找到最大日期? -
是的 - myrange 大约有 50 列,日期存储在最左边的列中
-
您能否 1) 将
Name更改为另一个变量,因为它会隐藏Name语句,以及 2)Debug.Print新变量(在您使用Max之后)并报告立即窗口中显示的输出? -
"date_range"与myrange中左栏的范围相同吗?如果它们是两个不同的范围,那么由于单元格的数字格式,您可能会隐藏时间方面。这将使找到完全匹配变得非常困难。 -
一种选择是在日期列上对
myrange进行排序,然后在 Vlookup 上使用相对搜索:True而不是False。
标签: excel vba excel-formula vlookup