Страницы: 1
RSS
Ошибка 1004, автоматизация рабочего файла реестра
 
Доброго времени суток,

В процессе встраивания кода, автоматизируемый файл стал на одном из этапов выдавать сообщение error 1004 Application-defined or object-defined error
Причем, пока делал части кода на маленьком файле - никаких ошибок не возникало. Как только начал объединять код в едином файле (в т.ч. нужно чтобы выполнялось два разных действия по WorksheetChange - об этом позже), ошибки пошли более-менее серийно. И вновь, как только подготовил небольшой файл примера, два срабатывания из трех код начал отрабатывать без error 1004.

Цель: автоматизировать реестр на 10000 записей
Порядок срабатывания кода:
1. WorkbookOpen - прописание ключевых формул и перекрытие значков примечаний белыми треугольниками
2. WorksheetChange - расширенный фильтр реестра по критерию в единственной ячейке, сохранение истории изменения ячеек (в ст. 1, 42, 49), вставка дат в соседние ячейки
3. WorkbookBeforeSave - удаление треугольников, скрывающих индикаторы примечаний (в большом рабочем файле идет вывод ошибки 1004)    

Также, довольно долго для WorksheetChange объединял расширенный автофильтр и сохранение истории в примечания - буду благодарен, если порекомендуете любую оптимизацию кода  



Код
Private Sub
Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

'Update 20141110     Sub RemoveIndicatorShapes()

'Dim pWs As Worksheet
'Dim pShape As Shape

Dim pWs As Worksheet
Dim pComment As Comment
Dim pRng As Range
Dim pShape As Shape

Set pWs = Application.ActiveSheet

For Each pShape In pWs.Shapes
    If Not pShape.TopLeftCell.Comment Is Nothing Then     'в этой строке дебаг дает желтую подсветку 
      If pShape.AutoShapeType = msoShapeRightTriangle Then
        pShape.Delete
      End If
    End If
Next
Изменено: Дмитрий Марков - 17.11.2019 04:59:47
 
1. Один вопрос - одна тема.
2. Название темы должно отражать проблему, а не констатировать ошибку.
Страницы: 1
Наверх