在VBA,我如何创build一个代码,它匹配2张工作日的date,并将数据粘贴到匹配的date作为值? 不能使用vlookup这个

所以我有两张Excel,计算器和结果表。

在计算器表上,单元格A1具有当前date。 在结果表单上,单元格A2:无限具有date增加的date。

我试图编写一个程序,其中计算器工作表IF单元格A1等于单元格A2:Infinity从结果表单中,它将从计算器工作表复制粘贴数据单元格范围C2:C7到结果表中匹配的date将值转换为单元格范围(B:G)

VLOOKUP不会工作,因为以前的数据会因date的变化而消失。

结果表

计算器表

任何帮助,将不胜感激!

你可以试试这个代码:

Option Explicit Sub main() Dim f As Range, calculatorData As Range Dim dateStrng As String With Worksheets("Calculator") '<--| reference "Calculator" worksheet Set calculatorData = .Range("C2:C7") '<--| set its range with data to be copied dateStrng = .Range("A1").value '<-- retrieve the date to be searched End With With Worksheets("Results") '<--| reference "Results" worksheet Set f = .Range("A2", .Range("A2").End(xlDown)).Find(what:=dateStrng, LookIn:=xlValues, lookat:=xlWhole, MatchCase:=False) '<-- look for searched data in its column "A" cells from row 2 down to last contiguous non empty cell End With If Not f Is Nothing Then f.Offset(, 1).Resize(, 6).value = Application.Transpose(calculatorData.value) '<--| if date is found then copy relevant values from "Calculator" next to it End Sub 

编辑:

应该在Excel工作表中的这些date不是String值,但实际Date那些,然后只是改变:

 dateStrng = .Range("A1").value '<-- retrieve the date to be searched 

成:

 dateStrng = WorksheetFunction.Text(.Range("A1").value, "[$-409]mmmm,dd-yyyy;@") '<-- retrieve the date to be searched in the proper language (eg: 409 = English) 

你可以在这里find所有的语言代码