1 / 1 / 0
Регистрация: 25.11.2016
Сообщений: 8
|
||||||
1 | ||||||
Как победить плавающую ошибку, возникающую на "словаре" в VBA. Run-time error '13': Type mismatch30.11.2016, 17:26. Показов 3052. Ответов 1
Метки нет (Все метки)
В продолжении Расширение стандартного поиска. Как искать списки слов в Excel?
Описание задачи. Найти все вхождения любого слова из приложенного списка "Исходные данные", файл ИД.txt. Найти надо в любой ячейке в любом листе книги. На выходе отобразить список ИД и информацией, где встретились совпадения. Глобально на входе будет список из 10-10000 строк, и искать он должен в таблицах из 1-50 листов и 100-100 000 строк. В качестве примера данных гораздо меньше. Изначально скрипт не мой, но я основательно разобрал его по косточкам, понял как он работает, снабдил его комментариями и дописал его под себя. Особенно запутало меня наличие "словаря" при работе данного скрипта.
1. Валится ошибка Run-time error '13': Type mismatch в самом конце работы скрипта, при построении итогового массива и отображением его на экране ( 'вытаскиваем из словаря ключи (keys) и их значения (items)). Опытным путем установлено, что проблема возникает из-за строки, обозначенной '222222 в скрипте. Как победить? При этом точно такая же строка '111111, которая короче по длине, отрабатывает нормально. 2. Валится ошибка Run-time error '13': Type mismatch, (надо активировать строку '111111 и закоментить '222222), если добавить в таблицу "искать тут.xlsm" пустые строки и/или столбцы, как на скриншоте. -- а это очень актуальная проблема, т.к. файлы с данными для поиска имеют совершенно разную структуру и могут содержать любое число пустых строк и столбцов. 3. В изначальном скрипте кроме "Dim sh As Worksheet, t$" объявлений переменных больше не было, остальные, про тип которых знаю, я добавлял сам. В массивах и словарях я совсем не силен. Судя по гуглению яндекса, ошибка 13 может быть из-за этого. Подскажите, каким типом надо правильно объявить все используемые в скрипте переменные? 4. Входные фразы могут состоять из любого числа слов. При формировании одномерного массива туда попадает пустая строка (см скрин ). Как этого избежать? 5. Как посмотреть значения .Key и значения .Item в созданном словаре во время отладки? Через MsgBox очень не удобно, а никакой другой способ я так и не нагуглил.
0
|
30.11.2016, 17:26 | |
Ответы с готовыми решениями:
1
Run Time Error 13 (Type Mismatch) или Run Time Error 9 (Overflow Run-time error 13 type mismatch Run-time error '13' type mismatch Run-time error '13': Type mismatch Run-time error 13: type mismatch |
1 / 1 / 0
Регистрация: 25.11.2016
Сообщений: 8
|
||||||
01.12.2016, 14:07 [ТС] | 2 | |||||
На другом форуме совместными усилиями ошибку победили.
Рабочий код:
0
|
01.12.2016, 14:07 | |
01.12.2016, 14:07 | |
Помогаю со студенческими работами здесь
2
Ошибка Run-time Error 13:Type Mismatch Error Ошибка run-time error 13 type mismatch в макросе Ошибка в макросе run-time error '13' type mismatch Плавущую ошибка: Run time error 13 - type mismatch Ошибка при запуске EXE: <Run-time error '13': Type mismatch> При сравнении объектов выводит run time error 13 type mismatch Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |