powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / excel ошибка Application-defined or object-defined error
9 сообщений из 9, страница 1 из 1
excel ошибка Application-defined or object-defined error
    #34355932
V_Milto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стираю графические символы в ячейке.
Иногда возникает ошибка Application-defined or object-defined error в строке Set rng = Intersect....
Не могу отловить ее. В основном прога работает. Куда смотреть?

Function ShapeFindDel(RngSelect As Range, SwDel As Boolean) As Shape
Dim rng As Range, shp As Shape, FindShape As Boolean

'RngSelect.Select
For Each shp In RngSelect.Worksheet.Shapes
FindShape = False
Set rng = Intersect(Range(shp.TopLeftCell, shp.BottomRightCell), RngSelect)
If Not rng Is Nothing Then
If rng.Address = Range(shp.TopLeftCell, shp.BottomRightCell).Address Then FindShape = True
End If

If FindShape And SwDel Then
shp.Delete
End If
If SwDel = False And FindShape Then
Set ShapeFindDel = shp
End If

Next
End Function
...
Рейтинг: 0 / 0
excel ошибка Application-defined or object-defined error
    #34355978
V_Milto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавлю - off2003 sp2
...
Рейтинг: 0 / 0
excel ошибка Application-defined or object-defined error
    #34356011
V_Milto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел закономерность. Я применяю список (Данные, Проверка, Список). Так после использования любого из списков и затем запуска программы очистки гр. символа возникает эта ошибка.
...
Рейтинг: 0 / 0
excel ошибка Application-defined or object-defined error
    #34356153
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
причина в том, что контрол списка тоже попал в коллекцию shape и ты пытаешься использовать его свойства, которых нет.

решение: несколько вариантов
1. проверять свойство .Type объекта shp на соответсвие ожидаемому (см. Help)
2. (более грубый) проверять возможность уделения в другой функции, например:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Function ShapeFindDel(RngSelect As Range, SwDel As Boolean) As Shape
Dim rng As Range, shp As Shape, FindShape As Boolean

'RngSelect.Select
    For Each shp In RngSelect.Worksheet.Shapes
        
        FindShape = False
        
        If IsProperDrawingObject(shp) Then
            Set rng = Intersect(Range(shp.TopLeftCell, shp.BottomRightCell), RngSelect)
            
            If Not rng Is Nothing Then
                If rng.Address = Range(shp.TopLeftCell, shp.BottomRightCell).Address Then
                    FindShape = True
                End If
            End If
        
            If FindShape And SwDel Then
                shp.Delete
            End If
            
            If SwDel = False And FindShape Then
                Set ShapeFindDel = shp
            End If
        End If
    Next
End Function

Private Function IsProperDrawingObject(MyShape As Shape) As Boolean
    IsProperDrawingObject = False
    On Error GoTo exit_mark
    
    Debug.Print MyShape.TopLeftCell.Address
    IsProperDrawingObject = True
    
exit_mark:
End Function
...
Рейтинг: 0 / 0
excel ошибка Application-defined or object-defined error
    #34356162
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
твой список(validation) тоже шейп, поэтому при обработке проверяй shp.type и пробрасывай, и будет тебе счастье:)
...
Рейтинг: 0 / 0
excel ошибка Application-defined or object-defined error
    #34356265
V_Milto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Буду пробовать.
Пока сделал криво - поставил
on error goto m1
For Each shp In RngSelect.Worksheet.Shapes
FindShape = False
Set rng = Intersect(Range(shp.TopLeftCell, shp.BottomRightCell), RngSelect)
.
.
m1:
Next


Завтра попробую Ваши варианты.
...
Рейтинг: 0 / 0
excel ошибка Application-defined or object-defined error
    #34356746
V_Milto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vbapro
Private Function IsProperDrawingObject(MyShape As Shape) As Boolean
IsProperDrawingObject = False
On Error GoTo exit_mark

Debug.Print MyShape.TopLeftCell.Address
IsProperDrawingObject = True

exit_mark:
End Function

Фактически, по интуиции я сделал тоже с вставкой IsProperDrawingObject = m1
в свой код.Или я не прав?
...
Рейтинг: 0 / 0
excel ошибка Application-defined or object-defined error
    #34356777
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, это то же самое
...
Рейтинг: 0 / 0
excel ошибка Application-defined or object-defined error
    #34357329
V_Milto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за поддержку.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / excel ошибка Application-defined or object-defined error
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]