无法获取WorksheetFunction类的Match属性

我想要做的是基于单元格oSht_Input.Cells(Rows, 7) ,我想在另一张表(periodSheet)列A中find一个匹配,并根据给定的列获取相应的值。

我已经尝试过使用.Index.Index来做到这一点。 .Index适用于我,但我越来越错误,说

运行时错误“1004”:无法获取WorksheetFunction类的Match属性。

我也尝试过在代码中执行Application.Match ,但是这会返回一个#N/A值。

我究竟做错了什么?

我有点困惑Application.MatchApplication.WorksheetFunction.Match的使用。

 Set oSht_Input = Worksheets(outSheet) Set periodSheet = Worksheets("PeriodMetadata") lastRow = oSht_Input.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row For Rows = 2 To lastRow With Application.WorksheetFunction dateCell = oSht_Input.Cells(Rows, 7) If rollupDataFile.GroupByPeriod Like "Week*" Then If rollupDataFile.GroupByPeriod Like "*Sunday" Then oSht_Input.Cells(Rows, 16).value = .Index(periodSheet.Range("B:H"), .Match(dateCell, periodSheet.Range("A:A"), 0), 1) ElseIf rollupDataFile.GroupByPeriod Like "*Monday" Then oSht_Input.Cells(Rows, 16).value = .Index(periodSheet.Range("B:H"), .Match(dateCell, periodSheet.Range("A:A"), 0), 2) .... code continues 

编辑:决定添加一点更多的背景下更好地澄清基于初始反馈。

dateCell将采取一个单元格的值,这绝对是一个date值。 periodSheet中的A列包含了从2000年1月1日到2020年12月31日的每个单一date,基本上涵盖了所有可能的date。 您可以放心地假设dateCell的值将在20年的这个范围内。

这是oSht_Input,其中列G是date 这是oSht_Input,其中列G是日期

2.这是PeriodMetadata表,我试图匹配列A(其中包含2000年至2020年的每一个date之前find基于.index函数的值。 这是PeriodMetadata表,我试图匹配列A(其中包含2000年至2020年的每一个日期之前发现基于.index函数的值

处理date时,请改用CLng().Value2

 Sub SO() '// C3 = "03/02/2015" '// A1:A14 = "01/02/2015" to "14/02/2015" '// All cells formatted as dates '// This will NOT work: Debug.Print WorksheetFunction.Match(Range("C3").Value, Range("A1:A14"), 0) '// This WILL work: Debug.Print WorksheetFunction.Match(Range("C3").Value2, Range("A1:A14"), 0) '// This WILL also work: Debug.Print WorksheetFunction.Match(CLng(Range("C3").Value), Range("A1:A14"), 0) End Sub 

这是因为Excel将date存储为数字的方式 – 有时需要在VBA中进行说明

当找不到匹配时,就是你得到的错误。

在下面的例子中,例如,

 MsgBox WorksheetFunction.Match(4, Range("A1:A4"), 0) 

按预期返回“4”,但是

 MsgBox WorksheetFunction.Match(5, Range("A1:A4"), 0) 

引发“无法获取WorksheetFunction类的匹配属性”错误。

在这里输入图像说明

另请参阅关于WorksheetfunctionApplication行为不同的说明。