Если вы используете в своей программе на VBA функцию InStr, которая ищет подстроку в строке, то вы можете столкнуться с такой ошибкой как:
Error 13 Type mismatch.
Если внимательно почитать описание этой функции в MSDN, то сразу понять источник ошибки не получится. Вроде и параметры все понятны и просты — а не работает!
Параметры
Start
Необязательно. Числовое выражение, задающее начальную позицию для каждого поиска. Если выражение опущено, поиск начинается с позиции первого символа. Начальный индекс начинается с 1.
String1
Обязательно. Выражение String для поиска.
String2
Обязательно. Искомое выражение String.
Compare
Необязательно. Указывает тип сравнения строк. Если Compare не задан, параметр Option Compare определяет тип сравнения.
Все дело в необязательном аргументе Compare. Если вы указываете его явно, то НЕОБХОДИМО ЯВНО задать параметр Start.
Например:
- Instr(«В ЭТОМ ТЕКСТЕ ИЩЕМ», «ТЕКСТЕ»,1) – при выполнении будет ошибка
- Instr(1, «В ЭТОМ ТЕКСТЕ ИЩЕМ», «ТЕКСТЕ»,1) – вызов функции отработает правильно!
Вот такой вот странный необязательный синтаксис! 🙂