Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / excel ошибка Application-defined or object-defined error / 9 сообщений из 9, страница 1 из 1
26.02.2007, 18:51:53
    #34355932
V_Milto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
excel ошибка Application-defined or object-defined error
Стираю графические символы в ячейке.
Иногда возникает ошибка 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
26.02.2007, 19:10:28
    #34355978
V_Milto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
excel ошибка Application-defined or object-defined error
Добавлю - off2003 sp2
...
Рейтинг: 0 / 0
26.02.2007, 19:25:42
    #34356011
V_Milto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
excel ошибка Application-defined or object-defined error
Нашел закономерность. Я применяю список (Данные, Проверка, Список). Так после использования любого из списков и затем запуска программы очистки гр. символа возникает эта ошибка.
...
Рейтинг: 0 / 0
26.02.2007, 21:17:39
    #34356153
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
excel ошибка Application-defined or object-defined error
причина в том, что контрол списка тоже попал в коллекцию 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
26.02.2007, 21:35:40
    #34356162
sergeyvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
excel ошибка Application-defined or object-defined error
твой список(validation) тоже шейп, поэтому при обработке проверяй shp.type и пробрасывай, и будет тебе счастье:)
...
Рейтинг: 0 / 0
26.02.2007, 23:46:33
    #34356265
V_Milto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
excel ошибка Application-defined or object-defined error
Буду пробовать.
Пока сделал криво - поставил
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
27.02.2007, 10:41:53
    #34356746
V_Milto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
excel ошибка Application-defined or object-defined error
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
27.02.2007, 10:52:12
    #34356777
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
excel ошибка Application-defined or object-defined error
да, это то же самое
...
Рейтинг: 0 / 0
27.02.2007, 12:55:00
    #34357329
V_Milto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
excel ошибка Application-defined or object-defined error
Спасибо за поддержку.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / excel ошибка Application-defined or object-defined error / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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