我正在使用Application.Match并期待
Application.Match(["Search Term"],["Search Array"],["-1 Optional Argument
to show the first result higher than 'Search Term'"]
我遇到类型不匹配的错误,尽管手动搜索同一数组会显示许多我认为应该满足脚本的示例!
例如:
Sheets("StockPointsLog").Range("E75").Value = 853.45
ReferenceTargetSell = 850.605
我尝试使用'''Application.WorksheetFunction.Match'''来查看是否解决了我所遇到的问题,但这似乎并不是100%可靠的方法,所以我希望放弃它以寻求实际解决方案。
我尝试将这一行封装在'''CDbl()'''中,这只是将错误代码转换为数字。
我还试图手动编辑数组中的值,以确认我确实有一个有效的结果要显示,但无济于事。
如您所见,如果没有结果,我将进行错误处理(就我的Sub其余部分而言,这是有效的结果)。这意味着对我而言,实际结果是.match结果为= 0,而不是N / A。
我已经疯狂搜寻了2天,我不得不求助于您,我亲爱的聪明朋友,您的帮助和经验!
i = 2
Do While i <= (TotalTrades + 1)
ReferenceDateRow = Application.Match(ReferenceDate,
Sheets("StockPointsLog").Range("A1:A1000"), 0)
ReferenceTargetSell = Sheets("Trades").Range("B" & i).Value
On Error Resume Next
NewTradeDate = Application.Match(ReferenceTargetSell,
Sheets("StockPointsLog").Range("E" & ReferenceDateRow & ":E1001"), -1)
NewTradeDate = Sheets("StockPointsLog").Range("A" & NewTradeDate).Value
ReferenceDateRow返回一个合法且正确的值。对此感到满意。
ReferenceTargetSell也可以按预期工作。
当我尝试设置NewTradeDate时,问题就开始了