Страницы: 1
RSS
Помогите удалить формы макросом
 
Реябята помогите с кодом удаления всех форм на активном листе. Записала рекодером получилось вот такое :  
ActiveSheet.Shapes("Text Box 767").Delete  
ActiveSheet.Shapes("Drop Down 2").Delete  
ActiveSheet.Shapes("Drop Down 1").Delete  
В той книге которой это писалось естесственно работает, а вот в других книгах макрос втыкается.  
Как преодолеть данное?
 
И никто не подскажет? Нет решения или вопрос слишком банален? :(
 
{quote}{login=Аленка}{date=29.10.2008 01:36}{thema=}{post}И никто не подскажет? Нет решения или вопрос слишком банален? :({/post}{/quote}  
 
Помоему никак не сделаешь
 
Не уверен про те формы разговор или нет, но попробуйте такой код:  
Sub www()  
Set myDocument = Worksheets(1)  
myDocument.Shapes.SelectAll  
Selection.Delete  
End Sub
 
{quote}{login=Юрий М}{date=29.10.2008 01:47}{thema=}{post}Не уверен про те формы разговор или нет, но попробуйте такой код:  
Sub www()  
Set myDocument = Worksheets(1)  
myDocument.Shapes.SelectAll  
Selection.Delete  
End Sub{/post}{/quote}  
 
Нет видать не про те... не работает ваш код.  
С листа надо удалить формы - "Поле со списком" и "Надпись"
 
Говорю не получится :)
 
Вы бы приложили свой файлик. Поглядим...
 
Как Вы создавали эти формы? При помощи чего?
 
ага, вот я приложила файлик
 
Все формы в Вашем файле при помощи указанного УДАЛИЛИСЬ!
 
{quote}{login=Юрий М}{date=29.10.2008 02:23}{thema=}{post}Все формы в Вашем файле при помощи указанного УДАЛИЛИСЬ!{/post}{/quote}  
 
Ага, так вот какая странность получается.  
На образце (что я прикрепила в пред письме) действительно удаляется.  
А вот в рабоч док где дополнительные навороты (в том числе условное форматирование) Макрос чистить условные форматы в активной ячейке, а формы он не затрагивает.  
Пробовала его использовать при поступательном удалении информации с рабочих листов при этом макрос втыкался. Когда удалила всю инфу с листов макрос стал удалять условные форматы.  
Надо бы что бы он удалил только формы именно на активном листе, а я так понимаю он рыскает по всей книге и видать во что-то втыкается.  
PS  
Прикрепила рабочий документ с удаленной инфой.
 
2.5 М ?  спасибо :)
Живи и дай жить..
 
Да нет, не бегает макрос по всей книге. Работает только с активным листом. А файлы-примеры такого объёма я скачивать не буду. Да и никто, наверное, не будет. Или архивируйте, или урезайте файл.
 
{quote}{login=Юрий М}{date=29.10.2008 02:58}{thema=}{post}Да нет, не бегает макрос по всей книге. Работает только с активным листом. А файлы-примеры такого объёма я скачивать не буду. Да и никто, наверное, не будет. Или архивируйте, или урезайте файл.{/post}{/quote}  
 
Вот урезала...  
Замечено, что если на другом каком листе есть форма (например надпись) То макрос делает что-то не то на нужном листе. Если формы нет, то удаляет как надо.
 
Попробуй так:  
Sub www()  
Set myDocument = ActiveSheet  
myDocument.Shapes.SelectAll  
Selection.Delete  
End Sub
 
{quote}{login=Юрий М}{date=29.10.2008 03:12}{thema=}{post}Попробуй так:  
Sub www()  
Set myDocument = ActiveSheet  
myDocument.Shapes.SelectAll  
Selection.Delete  
End Sub{/post}{/quote}  
 
Нет не получается :(  
Втыкается вот на этой строке  
myDocument.Shapes.SelectAll
 
{quote}{login=Alenka}{date=29.10.2008 03:17}{thema=Re: }{post}{quote}{login=Юрий М}{date=29.10.2008 03:12}{thema=}{post}Попробуй так:  
Sub www()  
Set myDocument = ActiveSheet  
myDocument.Shapes.SelectAll  
Selection.Delete  
End Sub{/post}{/quote}  
 
Нет не получается :(  
Втыкается вот на этой строке  
myDocument.Shapes.SelectAll{/post}{/quote}  
 
Да говорю не сделают тебе ничего :))))
 
Вот Ваш файл, где ВСЁ на листе удалилось. Попробуйте на нём.  
- - -  
Pena, не подначивай :-)
 
{quote}{login=Юрий М}{date=29.10.2008 03:23}{thema=}{post}Вот Ваш файл, где ВСЁ на листе удалилось. Попробуйте на нём.  
- - -  
Pena, не подначивай :-){/post}{/quote}  
 
Юрий спасибо Вам что возитесь.  
Но мне теперь понятно куда он втыкается.    
Вообщем если на листе есть примечания то он выдает ошибку и втыкается вот на этой строке :  
myDocument.Shapes.SelectAll  
 
Подскажите может как можно обойти эту проблему?  
 
Так бы конечно было замечательно )
 
Наверное надо как то ему указать что бы примечания игнорировал?
 
Не получается у меня отсечь комментарии - знаний не хватает. Может старшие товарищи помогут?
 
{quote}{login=Аленка}{date=29.10.2008 03:36}{thema=}{post}Наверное надо как то ему указать что бы примечания игнорировал?{/post}{/quote}  
 
Да да, вот именно) Ален, счас нет ребят которые тебе могут помочь до вечера подожди.
 
Репа, без наездов, пожалуйста.  
Я не увидел примечаний :(    
Может куда не туда смотрю? Ткните носом в файл...  
Ладно, создал сам примечания. Забавно, эксель у меня таки удаляет их, но валится с предложением написать письмо дяде Биллу. Так умерло пару рабочих документов в процессе тестирования этого макроса. :)  
Суть в том, что треугольничек в углу ячейки есть тоже Shape. Обойти его просто:  
Sub www()  
Dim shs As Shape  
For Each shs In ActiveSheet.Shapes  
If shs.Type <> msoComment Then shs.Delete  
Next  
End Sub  
Лучше, наверное, указать конкретные типы Шейпов для удаления, ибо подозреваю, что фоновая проверка ошибок тоже есть шейпы.  
 
И еще раз: Репа, а по репе?
Bite my shiny metal ass!      
 
If shs.Type <> msoComment  
Пробовал различные условия в If  А вот так я не догадался. Спасибо, Лузер.  
А насчёт "по репе" - присоединяюсь ;-)
 
{quote}{login=Лузер™}{date=29.10.2008 05:46}{thema=}{post}Репа, без наездов, пожалуйста.  
Я не увидел примечаний :(    
Может куда не туда смотрю? Ткните носом в файл...  
Ладно, создал сам примечания. Забавно, эксель у меня таки удаляет их, но валится с предложением написать письмо дяде Биллу. Так умерло пару рабочих документов в процессе тестирования этого макроса. :)  
Суть в том, что треугольничек в углу ячейки есть тоже Shape. Обойти его просто:  
Sub www()  
Dim shs As Shape  
For Each shs In ActiveSheet.Shapes  
If shs.Type <> msoComment Then shs.Delete  
Next  
End Sub  
Лучше, наверное, указать конкретные типы Шейпов для удаления, ибо подозреваю, что фоновая проверка ошибок тоже есть шейпы.  
 
И еще раз: Репа, а по репе?{/post}{/quote}  
 
 
Спасибки огромное! Работает все супер! Репа, ты не прав репа :-P
Страницы: 1
Читают тему
Наверх