Страницы: 1
RSS
VBA ошибка run-time 1004 в программе, причина неясна
 
Программа запускается через макрос Zurn. Он считывает наименование работы, находит шаблон этой работы, подставляет данные и записывает в таблицу листа Черновик. Почти все время при запуске вываливается ошибка run-time error 1004: Method 'Intersect' of object '_Global'  failed в строке, где переменной vrem присваивается значение ячейки столбца Даты. Первоначально разницу между датами я считал в программе, считывая столбцы Дата1 и Дата2 в переменные d1 и d2, но  на переменной d2 начала вываливаться ошибка, хотя d1 присваивалась нормально (ну вот как так?)
Для меня эта ошибка совершенно непонятна и нелогична, то появляется, то нет.  
 
А где у вас определены диапазоны Range("Данные"), (Range("Черно") и др.?
 
диапазоны можно посмотреть во вкладке Формулы - Диспетчер имен. Использую пересечения имен. Ошибку вроде исправил, здесь я использую пересечение имени столбца со всей строкой, заменил диапазон строки по ее номеру на пересечение диапазонов имен таблицы и столбца, затем беру ячейку по текущей строке. То есть было например vrem = Intersect(Range(rw & ":" & rw), Range("Даты")).Value (столбец Даты в таблице Данные и очередная строка целиком), стало vrem = Intersect(Range("Данные"), Range("Даты")).Cells(rw - 1).Value (таблица Данные пересекается со столбцом Даты, и потом берем нужную ячейку, rw-1 - это номер строки относительно листа минус число строк шапки. Но все же казалось, что старый вариант должен работать, он и работал раз на 5-й.
 
Вы об абзацах, переносах строк слышали? Читать Ваши сообщения неудобно.
 
Цитата
zenija2007 написал:
Но все же казалось, что старый вариант должен работать, он и работал раз на 5-й.
Он у Вас работал тогда, когда в момент запуска макроса АКТИВНЫМ был лист Данные.
Согласие есть продукт при полном непротивлении сторон
 
Снова стала  выскакивать та же ошибка после вывода 10 строк на лист Черновик.  Все проверил - имена на месте, все данные присутствуют, ошибок в шаблоне нет. Выскакивает в строке вызова функции DoStr.
 
zenija2007, ну отладку кода когда сами освоите? В момент ошибки значение r.Value чему у Вас равно?
Согласие есть продукт при полном непротивлении сторон
 
вместо r.Value появилась r.Value2. Если честно, все равно не понимаю, если обработка каждой строки таблицы Данные идет по одному алгоритму, то почему именно здесь вместо r.Value появилось r.Value2? И тем более не представляю, как убрать эту ошибку.
 
Цитата
zenija2007 написал: появилось r.Value2
Про Value2 не скажу, а вот r.Value в момент ошибки равно "Монт_футл", а такого имени в Вашем файле нет
Согласие есть продукт при полном непротивлении сторон
Страницы: 1
Читают тему
Наверх