Я использую функцию Excel VBA "Левый", чтобы получить три левых символа строки, но функция возвращает только два. Строка содержит более трех символов, поэтому я не понимаю, почему она возвращает меньше. Официальная документация указывает, что функция должна возвращать количество запрошенных символов или всю строку, если строка короче запрошенного числа символов.
Ошибка появляется в разделе ниже, но Trim()
, кажется, работает правильно. Я также не могу войти в функцию Left()
, чтобы посмотреть, как она обрабатывает вводы.
part = Trim(part)
pref = Left(part, 3)
EDIT1: я изменил количество символов в функции Left()
, чтобы посмотреть, изменится ли оно соответствующим образом. Left(part, 2)
вернул 1 символ (просто P
). Похоже, что функция системно возвращает на 1 символ меньше, чем запрошено.
EDIT2: я также изменил оператор If
, чтобы принимать на один символ меньше для событий, в которых Left()
вернуло неправильное количество.
В приведенном выше фрагменте должен быть принят один V
, но код пропущен до строки, указанной стрелкой, которая показывает, что сравнение по-прежнему ложно. Это наводит меня на мысль, что непечатаемый символ ведет всю строку, но я не знаю, как это проверить.