|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
10.05.2011, 22:54 | #1 |
Регистрация: 27.04.2011
Сообщений: 7
|
тормозит макрос после первой печати данного документа
Господа, и Дамы, доброго времени суток! Помогите пожалуйста вот с чем: есть макрос(привязан к кнопке), который скрывает строки, работает как надо, но, после первой печати данного листа нажимаю снова на кнопку макроса, тогда excelевкий файл начинает очень сильно виснуть (примерно секунд на 20). Подскажите пожалуйста, как можно избежать такое торможение. вот код:
Option Explicit Dim bl As Boolean Sub sergHid() Dim r As Range: Application.ScreenUpdating = False With [b9:b258] For Each r In .Cells r.EntireRow.Hidden = r = "" Next End With: Application.ScreenUpdating = True End Sub забыл сказать, в скрываемых строках есть формулы, но значения пустые. Последний раз редактировалось SergeiK; 11.05.2011 в 01:01. |
11.05.2011, 10:08 | #2 |
Форумчанин
Регистрация: 25.04.2010
Сообщений: 616
|
Посмотрите свою старую тему, там есть второй вариант - немного быстрее.
Хотя и там, и там виснуть особо не из-за чего. Может у Вас в книге есть еще какие-то макросы? |
11.05.2011, 10:51 | #3 |
Форумчанин
Регистрация: 30.01.2008
Сообщений: 314
|
вот так может быть чуть быстрее:
Sub sergHid() Dim i&, x, c& c = Application.Calculation Application.ScreenUpdating = False: Application.Calculation = xlCalculationManual Set x = [b9:b258].Value x.Rows.Hidden = False For i = 1 To UBound(x) If x(i) = "" Then Rows(i + 8).Height = 0 Next Application.ScreenUpdating = True: Application.Calculation = c End Sub |
11.05.2011, 11:12 | #4 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
slan, смутило, проверил, заработало так:
Код:
Код:
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 11.05.2011 в 11:15. |
11.05.2011, 11:45 | #5 |
Форумчанин
Регистрация: 30.01.2008
Сообщений: 314
|
согласен, второй вариант и имел ввиду..
|
11.05.2011, 12:03 | #6 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Ну и ещё RowHeight
webmoney: E265281470651 Z422237915069 R418926282008
|
11.05.2011, 18:06 | #7 |
Регистрация: 27.04.2011
Сообщений: 7
|
Да есть еще один макрос, на другой вкладке, который преобразовывает в число
вот он: Sub ïðåîáðàçîâàòüÂ÷èñëî() For a = 2 To 3000 For b = 1 To 4 If (b <> 8 Or b <> 6 Or b <> 5) Then Cells(a, b).Value = Val(Cells(a, b).Value) End If Next Next End Sub |
11.05.2011, 18:21 | #8 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Вот это интересно:
For b = 1 To 4 If (b <> 8 Or b <> 6 Or b <> 5) Then А так - проверяйте перебором массив (Вы ведь вероятно что-то проверить хотели), а потом уже правьте на листе.
webmoney: E265281470651 Z422237915069 R418926282008
|
11.05.2011, 19:09 | #9 |
Регистрация: 27.04.2011
Сообщений: 7
|
все, спасибо ребята за помощь! разобрался!
|
11.05.2011, 19:09 | #10 |
Регистрация: 27.04.2011
Сообщений: 7
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задание разных принтеров для печати одного документа | Bagema | Microsoft Office Word | 2 | 08.12.2016 13:18 |
Проблемы с полями при печати документа. | alina2012 | Microsoft Office Word | 1 | 21.03.2011 22:59 |
как создать событие при печати документа | funthing | Microsoft Office Excel | 2 | 07.08.2009 11:28 |
Сохранение документа при печати | vovk | Microsoft Office Word | 2 | 12.09.2008 10:12 |
Макрос сохранения после печати | lala_white | Microsoft Office Word | 2 | 10.08.2008 12:50 |