|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.04.2013, 03:13 | #1 |
Пользователь
Регистрация: 03.07.2012
Сообщений: 50
|
как можно увеличить скорость выполнения
можно ли увеличить скорость выполнения макроса и автоматизировать ?
i (переменная) из другого листа формулы подсчета диапазона заполненных строк Private Sub скрытие строк _Click() Application.ScreenUpdating = False For i = Sheets("kn").Range("C1") To Sheets("kn").Range("C136") - 1 If Cells(i, 5) = 0 Then Rows(i).Hidden = True Else Rows(i).Hidden = False End If Next i Application.ScreenUpdating = True End Sub Последний раз редактировалось VITA11111; 30.04.2013 в 03:24. |
30.04.2013, 05:33 | #2 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Не использовать циклы. Например,так:
Код:
Чем шире угол зрения, тем он тупее.
Последний раз редактировалось SAS888; 30.04.2013 в 10:35. |
30.04.2013, 10:42 | #3 |
Пользователь
Регистрация: 03.07.2012
Сообщений: 50
|
ЧЕГОТО НЕ РАБОТАЕТ НИЧЕГО НЕ ПРОИСХОДИТ
Код:
___________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (кнопочка на панели форматирования с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось VITA11111; 30.04.2013 в 12:45. |
30.04.2013, 13:21 | #4 | |
Старожил
Регистрация: 15.05.2008
Сообщений: 2,058
|
Цитата:
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499 |
|
30.04.2013, 15:36 | #5 |
Пользователь
Регистрация: 03.07.2012
Сообщений: 50
|
макрос работает ,только он не скрывает строки на листе "рабочий план", по условию если в строке объедененной ячейки (E14:G14) равна 0 то скрывает целую строку
в других ячеках находится текст . Последний раз редактировалось VITA11111; 30.04.2013 в 15:42. |
01.05.2013, 07:57 | #6 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
1. Макрос будет скрывать (отображать) строки на активном листе. Первая и последняя строка контролируемого столбца определяется значением ячеек "C1" и "C136" листа "kn". Если при выполнении данного кода активным может быть другой лист, то при определении переменной x добавьте ссылку:
Код:
Код:
Есть и другие варианты... Давайте пример файла... Достаточно несколько строк.
Чем шире угол зрения, тем он тупее.
Последний раз редактировалось SAS888; 01.05.2013 в 08:44. |
02.05.2013, 00:10 | #7 |
Пользователь
Регистрация: 03.07.2012
Сообщений: 50
|
Книга большая с множеством связанных таблиц копировать отдельные листы в отдельный файл не получится теряются ссылки но постораюсь сделать пример
Нашел Функцию Filter в VBA http://vba-help.ru/vbahelp/Function/text/Filter/ Код:
записал макрос автофильтра работает моментально,но раскрывающий список лишнее Последний раз редактировалось VITA11111; 02.05.2013 в 00:16. |
02.05.2013, 07:44 | #8 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
1. Вы допускаете распространенную ошибку. Приведенный Вами код в предыдущем посте будет корректно работать только при активном рабочем листе "РАБОЧИЙ ПЛАН". В этом случае ссылку на лист делать ни к чему. Если активным может быть другой лист, то ссылку на требуемый лист необходимо делать при каждом обращении к ячейкам этого листа (см. мой пример из поста №6 п.1). Иначе будет ошибка.
2. Функция Filter имеет 3 аргумента: массив для поиска, элемент поиска и указатель: включающие или исключающие элементы отбирать. Так вот эта функция работает только по частичному совпадению. Таким образом, указав элемент поиска "0", будут возвращены все элементы, его содержащие. Такие, как "0", "20", "103" и т. п. Считаю, что для решения Вашей задачи данная функция неприемлема. 3. Как я уже говорил, Вашу задачу можно решить множеством способов. Например, и с помощью автофильтра: Код:
Чем шире угол зрения, тем он тупее.
Последний раз редактировалось SAS888; 02.05.2013 в 07:49. |
02.05.2013, 12:35 | #9 |
Пользователь
Регистрация: 03.07.2012
Сообщений: 50
|
создал обрывок из таблицы
вобщем так: на листе "рабочий план" при добавлении строк меняются диапазоны, которые считаются на листе "kn" , исходя из этих данных объекты скрытия и расскрытия строк распологаются на листе"рабочий план", которые в свою очередь скрывают или раскрывают меняющийся диапазон частей таблицы и при этом при раскрытии прячут все ненужные т.е нулевые значения эти значения берутся из другой таблицы "лист3" ссылками ячейки на листе "рабочий план" где идет проверка объеденены Последний раз редактировалось VITA11111; 02.05.2013 в 12:40. |
02.05.2013, 12:55 | #10 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Как и ожидалось, проблема в объединенных ячейках.
Посмотрите вложение. запустите макрос "qq". Все так?
Чем шире угол зрения, тем он тупее.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как можно ускорить скорость макроса? | staniiislav | Microsoft Office Excel | 7 | 21.12.2011 09:44 |
Как увеличить скорость работы? (C#) | Serg121 | Помощь студентам | 4 | 06.12.2011 17:19 |
Как можно уменьшить время выполнения запроса. | ajevgen | PHP | 4 | 07.09.2011 15:55 |
как увеличить скорость скачивания!!! | alex(21) | Свободное общение | 16 | 10.09.2010 19:49 |
как увеличить скорость заполнения данных в mdb из excel | Tanuska___:) | БД в Delphi | 4 | 22.04.2010 10:50 |