Если вам нужно автоматически скрыть некоторые конкретные рабочие листы, когда кто-то открывает книгу, как вы могли бы справиться с этим заданием в Excel?
Автоматическое скрытие определенного рабочего листа при открытии книги с кодом VBA
Автоматическое скрытие некоторых конкретных листов при открытии книги с кодом VBA
Автоматическое скрытие определенного рабочего листа при открытии книги с кодом VBA
Если вы хотите скрыть один конкретный лист при открытии книги, вы можете применить следующий код VBA.
1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. Слева Проект-VBAProject панели дважды щелкните значок Эта рабочая тетрадь , чтобы открыть пустой модуль, а затем скопируйте и вставьте в модуль следующий код:
Код VBA: скрыть определенный лист при открытии книги:
Private Sub Workbook_Open()
Sheets("Sheet5").Visible = False
End Sub
Внимание: В приведенном выше коде Sheet5 — это имя листа, который вы хотите скрыть при открытии. Пожалуйста, измените его по своему усмотрению.
3. Затем сохраните и закройте это окно кода и нажмите Файл > Сохранить как чтобы сохранить эту книгу как Excel Macro-Enabled Workbook формат, см. снимок экрана:
4. Когда вы откроете эту книгу в следующий раз, нажмите Включить контент сначала нажмите кнопку, а затем ваш указанный лист будет автоматически скрыт.
Автоматическое скрытие некоторых конкретных листов при открытии книги с кодом VBA
Если при открытии книги необходимо скрыть несколько рабочих листов, вот код также может вам помочь.
1. Сначала вы должны перечислить имена листов, которые вы хотите скрыть при открытии, в списке рабочего листа, а затем перейти к Поле имени дать им название диапазона —ЛистыСкрыть, и нажмите Enter ключ, см. снимок экрана:
2. Затем удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
3. Слева Проект-VBAProject панели дважды щелкните значок Эта рабочая тетрадь , чтобы открыть пустой модуль, а затем скопируйте и вставьте в модуль следующий код:
Код VBA: скрыть некоторые конкретные рабочие листы при открытии книги:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Updateby Extendoffice 20161206
Dim ws As Worksheet
For Each ws In Worksheets
ws.Visible = xlSheetVisible
Next ws
End Sub
Private Sub Workbook_Open()
Dim ws As Worksheet
For Each ws In Worksheets
If WorksheetFunction.CountIf([SheetsToHide], ws.Name) > 0 Then
ws.Visible = xlSheetHidden
MsgBox ws.Name & "Has been hidden!", vbInformation, "Kutools for Excel"
Else
ws.Visible = xlSheetVisible
End If
Next ws
Set ws = Nothing
End Sub
Внимание: В приведенном выше коде ЛистыСкрыть — это имя диапазона, которое вы создали на шаге 1.
4. Затем сохраните и закройте это окно кода и нажмите Файл > Сохранить как чтобы сохранить эту книгу как Excel Macro-Enabled Workbook формат. С этого момента, когда вы откроете эту книгу в следующий раз, указанные рабочие листы будут автоматически скрыты.
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (0)
Оценок пока нет. Оцените первым!
15 / 8 / 2 Регистрация: 14.03.2011 Сообщений: 105 |
|
1 |
|
15.10.2011, 10:36. Показов 32681. Ответов 15
Собственно меня интересует как возможно открыть форму в документе эксель но так что бы была видна только форма при открытии документа а сам документ был скрыт или свернут?
0 |
аналитика здесь больше нет… 3372 / 1670 / 184 Регистрация: 03.02.2010 Сообщений: 1,219 |
||||
15.10.2011, 12:50 |
2 |
|||
Сообщение было отмечено как решение Решениев модуль «ЭтаКнига»:
4 |
15 / 8 / 2 Регистрация: 14.03.2011 Сообщений: 105 |
|
15.10.2011, 13:55 [ТС] |
3 |
не работает(
1 |
Почетный модератор 21371 / 9105 / 1082 Регистрация: 11.04.2010 Сообщений: 11,014 |
|
15.10.2011, 17:22 |
4 |
Assassinys, работает. в модуль «Эта книга» yourform заменить на свое, например, у меня Userform1
2 |
15 / 8 / 2 Регистрация: 14.03.2011 Сообщений: 105 |
|
15.10.2011, 22:19 [ТС] |
5 |
Да заработало , я просто имя формы некорректное выбирал
0 |
0 / 0 / 0 Регистрация: 09.10.2012 Сообщений: 3 |
|
09.10.2012, 11:16 |
6 |
А как обратно открыть файл для редактирования (((
0 |
Заблокирован |
||||
09.10.2012, 11:40 |
7 |
|||
А как обратно открыть файл для редактирования ((( Разве не очевидно?
1 |
0 / 0 / 0 Регистрация: 09.10.2012 Сообщений: 3 |
|
09.10.2012, 12:55 |
8 |
Может есть какое-то сочетание клавиш, позволяющее открыть файл без отработки макроса(shift не помогает), т.к. у меня отображается форма, но я не могу добавить код по причине отсутствия окна екселя… код не большой написан, просто стало интересно)
0 |
Заблокирован |
|
09.10.2012, 14:13 |
9 |
Aleksey1404, Вы наверно не с того конца начали программу писать
shift не помогает Странно, у меня shift позволяет открыть файл в Excel без автозапуска макросов
2 |
0 / 0 / 0 Регистрация: 09.10.2012 Сообщений: 3 |
|
09.10.2012, 14:48 |
10 |
открылось когда жал шифт в самом экселе Файл-открыть, а не щелкая по самому файлу)))
0 |
693 / 99 / 10 Регистрация: 25.06.2011 Сообщений: 718 |
|
16.05.2013, 18:41 |
11 |
sub workbook_open() при етом коде появляется ексель, потом исчезает, потом появляется сама форма, а есель исчезает как ето избежать тоесть нужно что бы просто появилась форма в невидемом екселепоявилась просто форма Добавлено через 54 секунды
0 |
Заблокирован |
||||
16.05.2013, 19:21 |
12 |
|||
IvanOK, На горе программист:
Работаю за спасибо
1 |
IvanOK 693 / 99 / 10 Регистрация: 25.06.2011 Сообщений: 718 |
||||
16.05.2013, 19:30 |
13 |
|||
inv.DS,
На горе программист: Добавлено через 3 минуты
ThisWorkbook.Windows.Application.Visible = False нужно сделать до
иначе ефект полюбому останется…. потому что сначала открываеться ексель а потом он выполняет макрос
0 |
Заблокирован |
|
16.05.2013, 19:39 |
14 |
IvanOK, Вы бредите! Все работает у меня остается только 1 форма активная, сам Excel прячется.
0 |
693 / 99 / 10 Регистрация: 25.06.2011 Сообщений: 718 |
|
16.05.2013, 19:49 |
15 |
inv.DS, ето вы просто не замечаете не мощном ПК, а я говорю дело
0 |
eagl69 10 / 14 / 8 Регистрация: 12.10.2011 Сообщений: 761 |
||||
30.11.2016, 17:05 |
16 |
|||
В продолжение темы:
Лист скрывается а вот при открытии появляется еще какой то лист пустой Миниатюры
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
30.11.2016, 17:05 |
Помогаю со студенческими работами здесь Открыть вторую форму и скрыть первую Form2 a=new Form2();… Скрыть форму, и открыть ее, сохранив свойства компонентов Как правильно — конкатенты, соконкатенты или конкатенанты, или термина для такого понятия вовсе нет? Это обьект, переменная или что? Как то вовсе непонятно // Функция Add Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 16 |
Как при окрытии книги сделать ее «невидимой»? |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
JuliS Пользователь Сообщений: 210 |
Всем доброго дня! Подскажите пожалуйста, как сделать так, чтобы при открытии книги запускалась только форма, а сама книга была скрыта? |
Hugo Пользователь Сообщений: 23249 |
{quote}{login=JuliS}{date=20.04.2011 01:32}{thema=Как открывая книгу запустить только форму?}{post}Всем доброго дня! Подскажите пожалуйста, как сделать так, чтобы при открытии книги запускалась только форма, а сама книга была скрыта?{/post}{/quote} Постаьте на открытие файла запуск формы, окно файла сделайте скрытым (меню Окно->скрыть). http://www.sql.ru/forum/actualthread.aspx?tid=549214 |
JuliS Пользователь Сообщений: 210 |
Я хочу, чтоб вообще никакого доступа к данным не было. И нажимая на крестик, чтоб книга закрывалась |
JuliS Пользователь Сообщений: 210 |
А можно ли книгу просто спрятать ЗА форму? |
Hugo Пользователь Сообщений: 23249 |
Посмотрите пример с сайта по ссылке выше |
слэн Пользователь Сообщений: 5192 |
|
JuliS Пользователь Сообщений: 210 |
{quote}{login=слэн}{date=20.04.2011 02:58}{thema=}{post} http://www.planetaexcel.ru/forum.php?thread_id=25225 {/post}{/quote} Слэн! именно так я и хотела сделать. Что мне нужно изменить в моем файле? И что дописать в modMaximize, чтоб Юзерформ2 тоже открывалась во весь экран? |
JuliS Пользователь Сообщений: 210 |
{quote}{login=Hugo}{date=20.04.2011 02:32}{thema=}{post}Посмотрите пример с сайта по ссылке выше{/post}{/quote} Идея хорошая.А можно ли, чтоб форма открывалась по-центру, а не слева вверху? |
JuliS Пользователь Сообщений: 210 |
У меня получилось создать запуск формы. А как можно вернуться в редактирование? Когда я вновь запустила файл, выходит сообщение, что он уже открыт. Как снова войти в редактирование? |
Hugo Пользователь Сообщений: 23249 |
Поставьте средний уровень безопасности (в 2000/2003) — тогда можно отключить макросы и автозапуск формы и зайти в редактор. |
JuliS Пользователь Сообщений: 210 |
{quote}{login=Hugo}{date=20.04.2011 05:34}{thema=}{post}Поставьте средний уровень безопасности (в 2000/2003) — тогда можно отключить макросы и автозапуск формы и зайти в редактор.{/post}{/quote} макросы я отключила. А где отключить автозапуск? |
Hugo Пользователь Сообщений: 23249 |
Так если макросы отключены — форма не запустится, окно не скроется. |
JuliS Пользователь Сообщений: 210 |
Прочитав тему http://www.planetaexcel.ru/forum.php?thread_id=25225 , я в свой файл добавила |
sva Пользователь Сообщений: 1027 |
Запустить другой файл Excel и из него зайти в редактор. |
Hugo Пользователь Сообщений: 23249 |
Так если Application.Visible = False, то и другой файл будет невиден. Вроде так, проверять не буду. |
sva Пользователь Сообщений: 1027 |
Нормально открывается, проверил. |
JuliS Пользователь Сообщений: 210 |
{quote}{login=Hugo}{date=20.04.2011 07:46}{thema=}{post}Так если Application.Visible = False, то и другой файл будет невиден. Вроде так, проверять не буду. Нужно False поменять на True? Кстати, помогает только перезагрузка |
JuliS Пользователь Сообщений: 210 |
Уважаемые знатоки! Посмотрите пожалуйста, где у меня ошибка в запуске файла |
Hugo Пользователь Сообщений: 23249 |
Что-то вроде этого. Я с формами мало дела имел, так что строго не судите. Но раз другого ничего нет… |
Hugo Пользователь Сообщений: 23249 |
Да, кроме всего прочего, убрал Rowsource листбокса — он теперь загружается программно. Иначе со скрытым окном работать не хочет. |
{quote}{login=JuliS}{date=20.04.2011 06:55}{thema=}{post}Прочитав тему http://www.planetaexcel.ru/forum.php?thread_id=25225 , я в свой файл добавила при закрытии формы крестом надо предусмотреть или закрытие приложения или его визуализацию.. form_terminate() исследуйте дальше — у меня это там есть. |
|
слэн Пользователь Сообщений: 5192 |
в предыдущем не залогинился |
JuliS Пользователь Сообщений: 210 |
Ув. слэн! Извиняюсь за назойливость. http://www.planetaexcel.ru/forum.php?thread_id=25225 ) Перепробовала все возможности. Но постоянно при повторном открытии, файл открывается «только для чтения». Хочу, чтоб мой файл открывался только в виде ФОРМЫ. Можно ли найти в чем ошибка? |
JuliS Пользователь Сообщений: 210 |
Попробовала создать файл на подобии post_206594. Но он не открываются, как мне надо. А те которые открываются, то » только для чтения» (см. прикрепленный файл). |
Hugo Пользователь Сообщений: 23249 |
Похоже, что запускается второй экземпляр Экселя, а этот файл уже открыт в первом Экселе. |
слэн Пользователь Сообщений: 5192 |
естественно… никтож не закрывал документ |
слэн Пользователь Сообщений: 5192 |
если не можете найти разницы, то просто возьмите мой файл и замените там форму на свою(сам макет, не название). там уже прописаны действия по нажатию кнопок пуск, отмена и крестик.. измените код для пуск( вызывайте свою программу), если потребуется |
{quote}{login=слэн}{date=22.04.2011 09:38}{thema=}{post}если не можете найти разницы, то просто возьмите мой файл и замените там форму на свою(сам макет, не название). там уже прописаны действия по нажатию кнопок пуск, отмена и крестик.. измените код для пуск( вызывайте свою программу), если потребуется{/post}{/quote} Ув.Слэн! Я так и сделала. В вашем файле, я поменяла fotopic на userform1. Результат тот же. Прочитала ветку http://www.planetaexcel.ru/forum.php?thread_id=4241 Там похоже та же ситуация. Скопировала себе последнее сообщение. Не помогло. Помогите, плиз! |
|
слэн Пользователь Сообщений: 5192 |
чем же я вам еще могу помочь? я уже предоставил вам файл, где реализовано, то, что вам нужно.. если я другой вам напишу, не будет ли тоже самое? попробуйте все же внимательно разобраться в алгоритме закрытия формы.. |
JuliS Пользователь Сообщений: 210 |
#30 22.04.2011 14:53:03 Ура! Я вроде нашла проблему. У меня на компьютере инсталлирован Office2007. Для создания проекта и поддержки на сайте я скачала Excel2003Portable. Создав проект в 2007-м, все работает отлично, но когда сохраняю в 2003-м. Начинается проблема. Вопрос: В чем причина? В наличии двух Оффисов на компьютере или проблема в портабельном Оффисе? И можно ли дополнительно инсталлировать Office2003? |
Хитрости »
Как сделать лист очень скрытым
1 Май 2011 90232 просмотров
Иногда возникают ситуации, когда надо скрыть лист со всем его содержимым от посторонних любопытных глаз. Очень часто это делается из контекстного меню листа (для счастливых обладателей 2007 Excel. Подробнее: здесь). Но при использовании данного метода необходимо защитить книгу, иначе отобразить скрытые листы сможет каждый (тем же правым щелчком мыши — Отобразить). А что делать, если книгу не надо защищать? Ведь часто необходимо оставить пользователям возможность работы со структурой книги, например, добавлять листы. Как тогда скрыть лист так, чтобы его нельзя было отобразить? Есть достаточно простой способ через редактор VBA, при этом обладать навыком программирования вообще не нужно. Итак, определились какой лист надо скрыть. Далее:
- заходим в редактор VBA(Alt+F11)
- жмем сочетание клавиш Ctrl+R или идем в меню View —Project Explorer (чтобы отобразить окно объектов проекта VBA)
- жмем F4 или через View —Properties Window (чтобы отобразить окно свойств)
- в левой части окна (в Project Explorer) ищем книгу, лист в которой надо скрыть и раскрываем её папку(на скрине это VBA Project (Книга1))
- раскрываем папку Microsoft Excel Objects и выделяем там лист с нужным именем
- в Окне свойств (Properties Window) находим свойство Visible и назначаем ему значение xlSheetVeryHidden
Чтобы затем отобразить этот лист необходимо свойству Visible задать значение — xlSheetVisible. При этом для отображения листа необходимо будет обязательно зайти в редактор VBA — простым методом отобразить не получится. И книгу защищать не надо. Что нам и было необходимо.
Для большей надежности можно защитить проект VBA, чтобы не было возможности отобразить лист из VBA, не указав пароль. На функционал это не повлияет совершенно.
В том же окне VBA(Alt+F11):
- Tools —VBAProject Properties -вкладка Protection
- для защиты устанавливается галочка «Lock project for viewing«; для разблокировки — снимается
- вписывается/удаляется сам пароль в полях Password и Confirm password.
Скрыть только определенные листы активной книги можно следующим кодом:
Sub Hide_Sheets() Dim ws, aSheets aSheets = Array("Лист1", "Списки", "Лист2") 'через запятую перечисляем листы для скрытия(обязательно в кавычках) For Each ws In aSheets ActiveWorkbook.Sheets(ws).Visible = xlSheetVeryHidden 'отобразить – xlSheetVisible; сделать лист просто скрытым - xlSheetHidden Next wsSh End Sub
Как использовать: Для начала надо убедиться, что разрешены макросы и при необходимости включить их: почему не работает макрос. Затем копируем код выше, из Excel переходим в редактор VBA(Alt+F11) —Insert —Module. Вставляем туда скопированный код. Теперь код можно вызывать нажатием клавиш Alt+F8 -выделяем Hide_Sheets —Выполнить(Run).
Скрыть все листы в активной книге, кроме листа с именем «Видимый», можно следующим кодом:
Sub Hide_All_Sheets() Dim wsSh As Object For Each wsSh In ActiveWorkbook.Sheets If wsSh.Name <> "Видимый" Then wsSh.Visible = xlSheetVeryHidden 'отобразить – xlSheetVisible; сделать лист просто скрытым - xlSheetHidden Next wsSh End Sub
Скрыть абсолютно все листы не получится — Excel не позволит это сделать, т.к. в книге должен быть видимым хотя бы один лист.
Также см.:
Как сделать лист скрытым?
Изменить видимость листов
Почему нет листов?
Статья помогла? Сделай твит, поделись ссылкой с друзьями!