VBA Excel Application.Match неожиданно возвращает ошибку - PullRequest
0 голосов
/ 24 марта 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...