Я использую 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