Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/run-time error 80010108 ActiveWorkbook.Worksheets - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » run-time error 80010108 ActiveWorkbook.Worksheets (Макросы/Sub)
run-time error 80010108 ActiveWorkbook.Worksheets
lFJl Дата: Среда, 08.02.2017, 05:54 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 236
Репутация: 6 ±
Замечаний: 0% ±

Excel 2013
Добрый день.
Часть кода:
[vba]
Код
On Error Resume Next
Workbooks(dis_fname).Activate 'выбираем нашу книгу
nr = ActiveWorkbook.ActiveSheet.Range(dis_tname).End(xlDown).Row + 1 'уточняем координаты последней строчки в таблице
nc = ActiveWorkbook.ActiveSheet.Range(dis_tname).Column
ActiveWorkbook.ActiveSheet.Cells(nr, nc).Value = res 'добавляем запись в конец таблицы
ActiveWorkbook.ActiveSheet.Cells(nr, nc + 6).Value = Now 'дописываем дату изменения
ActiveWorkbook.Close savechanges:=True 'сохраняем, закрываем

Workbooks(dis_f_name).Activate 'выбираем нашу книгу
nr = Range(dis_t_name).End(xlDown).Row + 1 'находим последнюю заполненную строчку +1 в таблице
nc = Range(dis_t_name).Column 'находим столбец таблицы
[b]ActiveWorkbook.Worksheets(dis_s_hname).Cells(nr, nc).Value = res 'Записываем значение в эту ячейку[/b]
ActiveWorkbook.Worksheets(dis_s_hname).Cells(nr, nc + 6).Value = Now 'дописываем дату изменения
Application.ScreenUpdating = True 'включаем обновление экрана
add_fio_p1.Visible = False 'скрываем кнопку
Exit Sub
[/vba]

Смысл такой, есть 2 файла с практически одинаковыми таблицами, сначала в одном файле добавляю данные, потом во втором.
Почему - то очень редко останавливается на строчке [vba]
Код
ActiveWorkbook.Worksheets(dis_s_hname).Cells(nr, nc).Value = res 'Записываем значение в эту ячейку
[/vba]
При этом, если нажать продолжить выполнение макроса, то он отработает нормально.

Вопрос, куда копать? :)
 
Ответить
СообщениеДобрый день.
Часть кода:
[vba]
Код
On Error Resume Next
Workbooks(dis_fname).Activate 'выбираем нашу книгу
nr = ActiveWorkbook.ActiveSheet.Range(dis_tname).End(xlDown).Row + 1 'уточняем координаты последней строчки в таблице
nc = ActiveWorkbook.ActiveSheet.Range(dis_tname).Column
ActiveWorkbook.ActiveSheet.Cells(nr, nc).Value = res 'добавляем запись в конец таблицы
ActiveWorkbook.ActiveSheet.Cells(nr, nc + 6).Value = Now 'дописываем дату изменения
ActiveWorkbook.Close savechanges:=True 'сохраняем, закрываем

Workbooks(dis_f_name).Activate 'выбираем нашу книгу
nr = Range(dis_t_name).End(xlDown).Row + 1 'находим последнюю заполненную строчку +1 в таблице
nc = Range(dis_t_name).Column 'находим столбец таблицы
[b]ActiveWorkbook.Worksheets(dis_s_hname).Cells(nr, nc).Value = res 'Записываем значение в эту ячейку[/b]
ActiveWorkbook.Worksheets(dis_s_hname).Cells(nr, nc + 6).Value = Now 'дописываем дату изменения
Application.ScreenUpdating = True 'включаем обновление экрана
add_fio_p1.Visible = False 'скрываем кнопку
Exit Sub
[/vba]

Смысл такой, есть 2 файла с практически одинаковыми таблицами, сначала в одном файле добавляю данные, потом во втором.
Почему - то очень редко останавливается на строчке [vba]
Код
ActiveWorkbook.Worksheets(dis_s_hname).Cells(nr, nc).Value = res 'Записываем значение в эту ячейку
[/vba]
При этом, если нажать продолжить выполнение макроса, то он отработает нормально.

Вопрос, куда копать? :)

Автор - lFJl
Дата добавления - 08.02.2017 в 05:54
_Boroda_ Дата: Среда, 08.02.2017, 09:18 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Попробуйте обе строки выше переписать с явным указанием книги и листа
[vba]
Код
nr = ActiveWorkbook.ActiveSheet.Range(dis_t_name).End(xlDown).Row + 1 'находим последнюю заполненную строчку +1 в таблице
nc = ActiveWorkbook.ActiveSheet.Range(dis_t_name).Column 'находим столбец таблицы
[/vba]
В книге dis_f_name один лист? Если нет, то можно явно на него перейти, а потом уже писать ActiveSheet


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПопробуйте обе строки выше переписать с явным указанием книги и листа
[vba]
Код
nr = ActiveWorkbook.ActiveSheet.Range(dis_t_name).End(xlDown).Row + 1 'находим последнюю заполненную строчку +1 в таблице
nc = ActiveWorkbook.ActiveSheet.Range(dis_t_name).Column 'находим столбец таблицы
[/vba]
В книге dis_f_name один лист? Если нет, то можно явно на него перейти, а потом уже писать ActiveSheet

Автор - _Boroda_
Дата добавления - 08.02.2017 в 09:18
lFJl Дата: Среда, 08.02.2017, 09:59 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 236
Репутация: 6 ±
Замечаний: 0% ±

Excel 2013
Еще забыл сказать, может важно. В момент ошибки навожу на переменные nr, nc. В них номера строк и столбцов верно нашлись
Так же сейчас заметил. я данные иногда через форму заношу, и корректно этот макрос работает, но стоит форму закрыть и открыть снова, как возникает ошибка каждый раз.
Еще интересный факт, данная строка дописываем в конец таблицы значение, и вроде как макрос на ней тормозит. Прерываем макрос, заходим в таблицу - а значение там записалось, странно так...

В книге dis_f_name один лист? Если нет, то можно явно на него перейти, а потом уже писать ActiveSheet

В файлах несколько листов, дописал [vba]
Код
ActiveWorkbook.Worksheets(dis_s_hname).Select 'на лист с базой в файле
[/vba]
не помогло

Попробуйте обе строки выше переписать с явным указанием книги и листа

То же не помогло.

А вот допустим такое работает без проблем.
[vba]
Код
'смотрим файл базы
Set rr = ActiveWorkbook.ActiveSheet.Range(dis_tname).Find(what:=res, lookat:=xlWhole) 'находим координаты в общей базе
rr.Offset(0, 3).Value = res1 'записываем по координатам
rr.Offset(0, 6).Value = Now 'дописываем дату изменения
ActiveWorkbook.Close savechanges:=True 'сохраняем, закрываем
'смотрим наш файл
'обновляем информацию по ФИО
Set rr = ActiveWorkbook.Worksheets(dis_s_hname).Range(dis_t_name).Find(what:=res, lookat:=xlWhole)
rr.Offset(0, 3).Value = res1
rr.Offset(0, 6).Value = Now 'дописываем дату изменения
Application.ScreenUpdating = True 'включаем обновление экрана
add_doljn_p.Visible = False
Exit Sub
[/vba]
 
Ответить
СообщениеЕще забыл сказать, может важно. В момент ошибки навожу на переменные nr, nc. В них номера строк и столбцов верно нашлись
Так же сейчас заметил. я данные иногда через форму заношу, и корректно этот макрос работает, но стоит форму закрыть и открыть снова, как возникает ошибка каждый раз.
Еще интересный факт, данная строка дописываем в конец таблицы значение, и вроде как макрос на ней тормозит. Прерываем макрос, заходим в таблицу - а значение там записалось, странно так...

В книге dis_f_name один лист? Если нет, то можно явно на него перейти, а потом уже писать ActiveSheet

В файлах несколько листов, дописал [vba]
Код
ActiveWorkbook.Worksheets(dis_s_hname).Select 'на лист с базой в файле
[/vba]
не помогло

Попробуйте обе строки выше переписать с явным указанием книги и листа

То же не помогло.

А вот допустим такое работает без проблем.
[vba]
Код
'смотрим файл базы
Set rr = ActiveWorkbook.ActiveSheet.Range(dis_tname).Find(what:=res, lookat:=xlWhole) 'находим координаты в общей базе
rr.Offset(0, 3).Value = res1 'записываем по координатам
rr.Offset(0, 6).Value = Now 'дописываем дату изменения
ActiveWorkbook.Close savechanges:=True 'сохраняем, закрываем
'смотрим наш файл
'обновляем информацию по ФИО
Set rr = ActiveWorkbook.Worksheets(dis_s_hname).Range(dis_t_name).Find(what:=res, lookat:=xlWhole)
rr.Offset(0, 3).Value = res1
rr.Offset(0, 6).Value = Now 'дописываем дату изменения
Application.ScreenUpdating = True 'включаем обновление экрана
add_doljn_p.Visible = False
Exit Sub
[/vba]

Автор - lFJl
Дата добавления - 08.02.2017 в 09:59
Мир MS Excel » Вопросы и решения » Вопросы по VBA » run-time error 80010108 ActiveWorkbook.Worksheets (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!