Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Удаление графических объектов в заданных стобцах
 
Великие гуру excel!
без вашей помощи никак  :oops:  

я изучила данный вопрос тут
взяла код:
Код
Private Sub Draws_In_Selection_Select() ' выделить В ВЫБРАННОМ ДИАПАЗОНЕ все рисунки
Dim oDraw, rSel As Range
Set rSel = ActiveWindow.RangeSelection
For Each oDraw In ActiveSheet.DrawingObjects.ShapeRange
If Not Intersect(Range(oDraw.TopLeftCell, oDraw.BottomRightCell), rSel) Is Nothing Then oDraw.Select (False)
Next
End Sub 

попыталась его преобразовать:
Код
Sheets("For schedule" ;) .Select
 'Delete all graphic obects
 Dim oDraw, rSel As Range
[COLOR=#00FF00] Set rSel = Range("S2:Y500" ;) [/COLOR]
 For Each oDraw In ActiveSheet.DrawingObjects.ShapeRange
 If Not Intersect(Range(oDraw.TopLeftCell, oDraw.BottomRightCell), rSel) Is Nothing Then oDraw.Select (False)
 Next
 Selection.Delete

а удаляет все графические объекты, в том числе и мою красивую кнопку запуска макроса, которая располагается в столбцу Q:Q
 
если приложите пример, то, я уверен, скоро получите ответ, а если не приложите, то я не уверен..
Живи и дай жить..
 
Вот) Спасибо.
например с этого листа , очень надо чтоб удалялось все объектики в столбцах s:y
 
Код
Dim oDraw, rSel As Range
    Set rSel = Range("S2:Y500")
    For Each oDraw In ActiveSheet.DrawingObjects.ShapeRange
    If Not Intersect(Range(oDraw.TopLeftCell, oDraw.BottomRightCell), rSel) Is Nothing Then oDraw.Delete
    Next
Учимся сами и помогаем другим...
 
Работает!  :{}
Спасибо! это чудесно! даже солнце выглянуло из-за туч)
 
а может есть смысл сделать более универсальное не привязываясь к S:Y, а вместо этого написать что то вроде:

Код
Set rSel =  Range(Selection.Address)
Изменено: DJ_Marker_MC - 25 Сен 2013 14:23:42
 
я так понимаю тут надо выделять необходимые столбцы?
 
в этом случае переменная rSel вообще не нужна
Код
Dim oDraw, rSel As Range
    For Each oDraw In ActiveSheet.DrawingObjects.ShapeRange
    If Not Intersect(Range(oDraw.TopLeftCell, oDraw.BottomRightCell), Selection) Is Nothing Then oDraw.Delete
    Next
Учимся сами и помогаем другим...
 
запомню) спасибо!
 
Ну не работает в рабочем файле. Сделал пример, а в нём всё прекрасно работает. Правда, пример опять же зашкаливает за 100 кб, т.к. там картинки и объекты, от которых нужно избавиться. Но не с ActiveSheet, а с диапазона B2:P100. Покажу, что происходит на картинке. При пошаговом просмотре, вдруг открывается UDF_ка, которая работает в диапазоне А35:А54 и к этому макросу не имеет никакого отношения.
Скрытый текст
http://файлообменник.рф/86l6rk304tld.html
http://файлообменник.рф/s48erv8uk105.html
UDF.jpg (33.92 КБ)
Изменено: Владимир - 30 Апр 2015 15:59:43
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Вы в коде изменяете свойства ячеек(снимаете объединение, делаете спец.вставку), что вполне может вызывать пересчет функции.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
И как быть тогда, если это необходимо сделать, чтобы получить читабельный вид?
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
Страницы: 1
Читают тему (гостей: 1)