Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.09.2011, 12:51   #1
АННА-ЕАО
Форумчанин
 
Аватар для АННА-ЕАО
 
Регистрация: 24.08.2011
Сообщений: 193
Вопрос Как удалить подпись с нескольких листов одновременно?

Здравствуйте. Помогите, пожалуйста, с решением проблемы. Как удалить подпись с нескольких листов одновременно. Если пойти простым способом, а именно выделить все листы, то выделение объектов становится не активным, а удаление строк ничего не дает. Мне нужно удалить только среднюю подпись. Как это сделать?
Вложения
Тип файла: rar Пример подписи.rar (12.3 Кб, 20 просмотров)
АННА-ЕАО вне форума Ответить с цитированием
Старый 06.09.2011, 13:13   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Тема рядом должна помочь:

http://www.programmersforum.ru/showthread.php?t=164896
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 06.09.2011, 13:26   #3
АННА-ЕАО
Форумчанин
 
Аватар для АННА-ЕАО
 
Регистрация: 24.08.2011
Сообщений: 193
По умолчанию

Hugo121 тему читала, даже хотела в ней свой вопрос задать, но решила создать отдельную тему.

Объясняю почему. Когда я выделяю все листы и в какой-то ячейки что-то меняю, (записываю, удаляю и т.д.) это все работает. Мне надо удалить не ячейку, (диапазон, строку и т.д.), а объект. При выделении всех листов выделить объекты нет возможности так как данная функция становится не активна. Если удалить строку то объект - подпись не удаляется, а смещается.
Посмотрите файл может я не совсем понятно объясняю.
АННА-ЕАО вне форума Ответить с цитированием
Старый 06.09.2011, 13:45   #4
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Если объект имеет одинаковое имя на всех листах, то очень просто:
Код:
for each s in sheets:s.shapes("Группа 21").delete:next
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 06.09.2011, 13:48   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Да, я не заметил, что это объект, не кликал по нему
Т.е. нужно удалить "Группа 21" на всех листах, кроме первого - там "Группа 30"?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 06.09.2011, 13:56   #6
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Вот так - средний объект из трех, независимо от названия и нумерации:
Код:
Sub bb()
Dim s, a, b, c
For Each s In Worksheets
    c = 1
    For Each a In s.Shapes
        For Each b In s.Shapes
            If Not b Is a Then c = c * (b.Top - a.Top)
        Next
        If c < 0 Then a.Delete: Exit For
    Next
Next
End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 06.09.2011, 14:07   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

В данном частном случае сработало и так:
Код:
Sub tt()
Dim s
For Each s In Worksheets
    s.Shapes(s.Shapes.Count).Delete
Next
End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 06.09.2011, 14:34   #8
АННА-ЕАО
Форумчанин
 
Аватар для АННА-ЕАО
 
Регистрация: 24.08.2011
Сообщений: 193
По умолчанию

Казанский Ваш код работает идеально! Спасибо!

Hugo121 Спасибо, но Ваш код удаляет не среднюю подпись, а последюю. Но мне этот вариант тоже обязательно пригодится.
АННА-ЕАО вне форума Ответить с цитированием
Старый 06.09.2011, 14:53   #9
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Не знаю - в Вашем примере на моём компьютере последняя подпись стоит посередине
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 06.09.2011, 15:15   #10
АННА-ЕАО
Форумчанин
 
Аватар для АННА-ЕАО
 
Регистрация: 24.08.2011
Сообщений: 193
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
на моём компьютере последняя подпись стоит посередине


Не знаю, не знаю...

Думаю это потому, что я код проверяла не на файле-примере (там он действительно работает верно (сейчас проверила )), а на моём огромном файле.
Не знаю почему, но в другом файле удаляются последнии подписи.
АННА-ЕАО вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отображение в гриде одновременно на нескольких языках (например русский и польский) supalk Общие вопросы Delphi 5 24.10.2011 09:32
Как выбрать из нескольких файлов одновременно ЦЕРЦЕЯ Microsoft Office Excel 0 20.01.2010 16:16
Отлов одновременно нескольких клавиш. Alex Cones Общие вопросы Delphi 7 24.11.2009 17:11
Процедура поиска нескольких файлов одновременно GvR Общие вопросы Delphi 3 15.11.2009 02:43
Воспроизведение нескольких звуков одновременно GodSmack Общие вопросы Delphi 3 13.08.2009 02:28