|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.03.2010, 08:33 | #1 |
Пользователь
Регистрация: 09.02.2010
Сообщений: 41
|
Макрос для всех листов
Уважаемые, помогите править макрос. Я долго добирался до макроса, который бы выполнялся на всех листах книги. Ниже образец найденного.
----------------------------------------------------------------- Public Sub DoToAll() 'декларирование переменой Dim ws As Worksheet For Each ws In Worksheets 'разместите свой код для выполнения на каждом листе ws.Range("A1") = "Пример" Next End Sub ----------------------------------------------------------------- Макрос-пример на каждом листе в ячейке ставит надпись "Пример". Мне необходимо, чтобы выполнялся другой макрос: Проблема, - как разместить ранее полученный макрос удаления пустых строк между "For" "Next". Сам код для удаления ниже ----------------------------------------------------------------- Sub DeleteEmptyRows() LastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count Application.ScreenUpdating = False For r = LastRow To 1 Step -1 If Application.CountA(Rows(r).Columns( 9)) = 0 Then Rows(r).Delete Next r End Sub ----------------------------------------------------------------- СПАСИБО. долго мучаюсь. |
07.03.2010, 08:54 | #2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Можно, например, так:
Код:
Код:
PS: Не понял, что означает CountA(Rows(r).Columns(9)) Зачем считать количество заполненных ячеек для диапазона из 1 ячейки??? Ладно бы, если всю строку проверяли... А то можно написать и попроще: Код:
Код:
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 07.03.2010 в 09:01. |
07.03.2010, 09:13 | #3 |
Пользователь
Регистрация: 09.02.2010
Сообщений: 41
|
Огромное спасибо, - быстро и оперативно. Сначала не получилось, но подправил код удаления и стало все ОК.
Возникла ещё одна проблемка - на первом листе у меня ячейки, при активации на которых выполняется макрос (своеобразное меню). Так это "меню" тоже удаляется. Можно ли сделать так, чтобы ... со второго листа и до последнего шло удаление. То есть как не трогать первый лист. Спасибо. |
07.03.2010, 09:15 | #4 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Код:
|
07.03.2010, 09:20 | #5 |
Пользователь
Регистрация: 09.02.2010
Сообщений: 41
|
Не дочитал - броузер не все выдал. Строка
CountA(Rows(r).Columns(9)) означает, что удаление строк идет по проверке ячеек в 9 колонке - это сейчас не принципиально. Другие Ваши варианты ещё не пробовал - получилось пока с первым. *** Проблема с первым листом-описано выше. После этого попробовал вставлять картинки и привязывать к ним макросы - картинки не удаляются. Поэтому один из вариантом найден. Ради интереса - как все-таки оставить "неприкосновенным" первый лист. Макрос выполнялся бы со второго. Спасибо. |
07.03.2010, 09:23 | #6 |
Пользователь
Регистрация: 09.02.2010
Сообщений: 41
|
Так быстро, что не успеваю. Преклоняюсь, иду осваивать. Спасибо.
|
10.02.2011, 19:34 | #7 |
Новичок
Джуниор
Регистрация: 01.02.2011
Сообщений: 2
|
Доброго времени суток всем!!!!
У меня имеется макрос вида: Sub Защита() Const MyPassword = "1111" With ActiveSheet .Unprotect Password:=MyPassword .EnableOutlining = True .Protect Password:=MyPassword, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True End With End Sub необходим запуск макроса по Всем листам!!! на сколько я понял мне необходим примерно вот такой цикл в него вписать: Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets Next Но как это сделать понять не могу!!! Только начал с VB колдовать и не очень что-то получается! Помогите ПЛЗ! |
10.02.2011, 19:42 | #8 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Например, так:
Код:
|
10.02.2011, 21:15 | #9 |
Новичок
Джуниор
Регистрация: 01.02.2011
Сообщений: 2
|
ОГРОМНОЕ СПАСИБО!
Всё работает! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Макрос для сохранения всех картинок из Word в файл | Nitro | Microsoft Office Word | 5 | 24.05.2012 21:05 |
Получить имена всех листов в книге | Temnota | Microsoft Office Excel | 6 | 26.12.2009 07:36 |
Макрос для сохранения листов в отдельных файлах | Neo007 | Microsoft Office Excel | 2 | 22.10.2008 18:16 |
Снятие Защиты с листов, сразу со всех | valerij | Microsoft Office Excel | 2 | 02.11.2007 21:19 |