![]() |
Скрыть работу скрипта
Всем привет, помогите скрыть работу скрипта, а то при добавлении листа прыгает и стандартными средствами не скрывает.
Код:
Application.ScreenUpdating = False А так же если есть возможность, то помочь оптимизировать код. Сам код: Код:
Sub All_in_one() |
Цитата:
|
Цитата:
Если оставить только в All in one () то результат тот же, прыгают и скачут листы. |
Покажите документ. Опишите работу.
|
Цитата:
Что надо сделать, точнее что уже сделал я: 1. Создать дубль листа под названием "Рабочий" (и на каждом листе должны быть сквозные строки, отформатировано по ширине и высоте по содержимому, стоять автофильтр) 2. Удалить дубликаты по "Обозначение" и отрезать все до "Маршрут" справа(начиная с столбца E и все что правее) 3. На отдельный лист вынести Столбец "Сборки" и удалить дубликаты, назвать "Сборки для диспетчера", переименовать заголовок с "Сборка" на "№ сборки" 4. На отдельный лист вынести что имеет в столбце "цех" ЭМЦ и назвать "ЭМЦ" 5. На отдельный лист вынести что имеет в столбце "цех" СМЦ и МЦ и назвать "МЦ+СМЦ" 6. На отдельный лист вынести все что не содержит пусто по столбцам "Карточки" и "ПредвАрхив" и назвать "Без КД" 7. Отправить по почте лист "Нет КД", не вложением, а заполнив тело сообщения содержимым листа "Нет КД", с переменным отправителем, название темы сообщения берется с названия листа(этот пункт в планах еще, тк не знаю как заполнить тело письма) |
blackeangel, я не придираюсь. Но я предполагаю, что я увижу в выложенном а) Рабочую книгу с б) макросами, с указанием: запускаем макрос XYZ() — наблюдаем описанную:
Цитата:
|
Я взял Ваш код из сообщения #1 и поместил его в Вашу Рабочую книгу из сообщения #5. Удалил из оной Рабочей книги все листы, кроме «Sheet». Закомментировал:
|
Цитата:
Просто некоторые Sub используются отдельно в надстройке как самостоятельные и из них выкинуть Application.ScreenUpdating никак. |
при создании листа или его дубликата он по умолчанию активен. Вот как это побороть?
|
Цитата:
Код:
Dim DefaultActiveSheet As Worksheet |
a_axe, а теперь поясните что тут делает код?
|
Как-то так:
Dim DefaultActiveSheet As Worksheet - определяем переменную, в которую позже сохраним тот лист, который является активным при работе программы. Set DefaultActiveSheet = ActiveWorkbook.ActiveSheet - сохраняем лист, который является активным на данный момент в переменную, чтобы сделать его активным при необходимости. ActiveWorkbook.Sheets.Add - добавляем в рабочую книгу еще один лист. Он действительно становится активным. DefaultActiveSheet.Activate - обращаемся к сохраненному листу, который был активным изначально, и перестал быть активным после добавления листа в книгу. Делаем его активным снова. Set DefaultActiveSheet = Nothing - выгружаем значение переменной из памяти, т.к. оно больше не нужно. |
А создать сразу неактивный никак? Просто все равно если нет скринапдатера то все это видно будет. Или я ошибаюсь?
|
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Например, так:
Скрытый текст
Код:
Option Explicit Принцип понятен? |
Время: 22:11. |
Время: 22:11.
© OSzone.net 2001-