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] При этом, если нажать продолжить выполнение макроса, то он отработает нормально.
Еще забыл сказать, может важно. В момент ошибки навожу на переменные nr, nc. В них номера строк и столбцов верно нашлись Так же сейчас заметил. я данные иногда через форму заношу, и корректно этот макрос работает, но стоит форму закрыть и открыть снова, как возникает ошибка каждый раз. Еще интересный факт, данная строка дописываем в конец таблицы значение, и вроде как макрос на ней тормозит. Прерываем макрос, заходим в таблицу - а значение там записалось, странно так...
Попробуйте обе строки выше переписать с явным указанием книги и листа
То же не помогло.
А вот допустим такое работает без проблем. [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. В них номера строк и столбцов верно нашлись Так же сейчас заметил. я данные иногда через форму заношу, и корректно этот макрос работает, но стоит форму закрыть и открыть снова, как возникает ошибка каждый раз. Еще интересный факт, данная строка дописываем в конец таблицы значение, и вроде как макрос на ней тормозит. Прерываем макрос, заходим в таблицу - а значение там записалось, странно так...
Попробуйте обе строки выше переписать с явным указанием книги и листа
То же не помогло.
А вот допустим такое работает без проблем. [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