VBA查找/查找与日期变量匹配的值并返回其旁边的日期

时间:2016-07-14 17:09:15

标签: excel vba excel-vba excel-formula vlookup

我似乎无法解决看似微不足道的问题。我基本上需要打开另一个文件,将存储在变量中的日期时间与打开文件中的日期相匹配,然后将日期时间返回到右边的四个单元格。

我已经使用了这两个公式,但似乎都不起作用:

[变量]

Dim TDate As Date
TDate = ThisWorkbook.Worksheets("Static Data").Range("B1").value
Filename = "<filename>"
Workbooks.Open Filename:=Filename, UpdateLinks:=False

[公式1]

rundate = WorksheetFunction.VLookup(CDate(TDate), ActiveWorkbook.Sheet("Dates").Range("B:F"), 4, False).value

[公式2]

Dim TDate As Date
TDate = ThisWorkbook.Worksheets("Static Data").Range("B1").value

rundate = ActiveWorkbook.Sheet("Dates").Cells.Find(Format(TDate, "d-mmm-yy"), ActiveWorkbook.Sheet("Dates").Range("B1"), xlValues, xlPart, xlByRows, xlNext, False, False).value
runtime = rundate.Offset(0, 4).value

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

工作表的VLOOKUP function会返回一个值,而不是从Range.Value property获取所需的单元格引用。

TDate已经是日期,但您也可以使用原始长整数值。

您需要Worksheets collection,而不是Sheet

rundate = WorksheetFunction.VLookup(CLng(TDate), ActiveWorkbook.Worksheets("Dates").Range("B:F"), 4, False)