Ref-sgain.ru

Программы и сервисы
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как скопировать скрытый лист в Excel?

Как скопировать листы в другую книгу с помощью vba?

Поэтому обычно я делаю копию инструкции. Однако в исходнике есть мои макросы, и я хочу, чтобы он создал идентичную копию, но без макросов. Мне кажется, что должен быть простой способ сделать это с помощью VBA, но я его пока не нашел. Я рассматриваю возможность копирования листов один за другим в новую книгу, которую я создам. Как я могу это сделать? Есть ли лучший способ?

  • Альтернатива, которую я решил использовать, такова: вручную вырезать макросы и сохранить эту книгу как «Шаблон». Это не офисный смысл шаблона, но, в общем, вы можете открыть его и сделать копию, чтобы при необходимости изменить.

Кто-то на Ozgrid ответил на аналогичный вопрос. По сути, вы просто копируете каждый лист по очереди из рабочей книги 1 в рабочую книгу 2.

Отказ от ответственности: Я не пробовал этот код и вместо этого просто применил связанный пример к вашей проблеме. Вы должны быть в состоянии найти предполагаемое решение таким образом.

  • 2 почему .activate и .select ? , сбросьте это. Также вы хотите зациклить Thisworkbook.worksheets . Я не уверен, будет ли он работать со скрытыми листами (выбор обязательно вызовет ошибку)
  • @BryanF .select на самом деле не требуется для .copy для работы на самом деле необходимо только, чтобы «исходная книга» была активной — следовательно, Thisworkbook.Activate Sheets(1).copy(Before:=OtherWorkbook.Sheets(1)) скопирует первый лист из ThisWorkbook к OtherWorkbook

Я немного перефразирую ответ keytarhero:

Редактировать: вы также можете создать массив имен листов и сразу же скопировать их.

Копирование данных из XLS? в XLS приведет к ошибке. Если вы хотите превратить XLS в XLSX, сделайте наоборот.

  • 2 Я согласен, это лучшее решение.
  • 1 Что произойдет, если один из листов будет ссылаться на другой лист?
  • @shlgug Тогда используйте ответ Брэда: stackoverflow.com/a/6865542/78522.

Вы можете сохранить в формате xlsx. После этого вы потеряете макросы и сможете создать книгу с меньшими усилиями.

  • 1 Это интересный подход, и он, вероятно, будет работать, если не выдаст ошибку.
  • 3 Действительно умный подход

Я смог скопировать все листы книги, в которой работало vba-приложение, в новую книгу без использования макросов приложения:

Если вы предполагаете, что все ваши макросы находятся в модулях, эта ссылка может вам помочь. После копирования книги просто пройдитесь по каждому модулю и удалите его.

Попробуйте.

Можно просто ввести

Вместо того, чтобы начинать цикл. По умолчанию коллекция листов воспроизводится в новой книге.

X L 2010 показала, что это работает.

Вот один из них, который может вам понравиться. Он использует Windows FileDialog (msoFileDialogFilePicker) для перехода к закрытой книге на рабочем столе, а затем копирует все рабочие листы в открытую книгу:

Как в экселе скрыть листы с паролем. Как в Excel скрывать листы и целые рабочие книги

В этом уроке мы рассмотрим такой интересный вопрос, как скрыть лист Excel в рабочей книге. На самом деле, все это делается для того, чтобы скрыть от других пользователей некоторую информацию, которая хранится в скрытом рабочем листе. Причин для этого может быть много, можно скрыть базу данных, чтобы чьи-то кривые пальцы не повредили данные, или скрыть промежуточные данные, или что-то бесполезное, но удаленное извините, чтобы быть полезным, или подумать о том, что вам нужно «подделать».

Читайте так же:
Как создать калькулятор процентов на погашение кредита из шаблона Excel?

Так что независимо от того, зовут ли вас Мата Хари или Джеймс Бонд, усаживайтесь поудобнее и изучайте основы тайны и инкогнито. Мы рассмотрим два способа скрыть электронную таблицу в Excel:

Рассмотрим все методы пошагово и более подробно, что и как лучше использовать, в чем их преимущества, перейдем к делу:

Это самый простой и доступный способ скрыть лист в Excel, который лучше всего использовать, когда вы не скрываете ничего ценного, а только удаляете ненужные листы или листы, на которых выполняются вычисления.

Excel позволяет скрывать или показывать листы, просто выполнив несколько простых действий:

1. Чтобы скрыть лист, щелкните правой кнопкой мыши на листе, который нужно скрыть.

2. В вызванном вами меню нужно нажать пункт «Скрыть» и требуемый лист спрячется с глаз долой.

Чтобы отобразить скрытый рабочий лист в Excel обратным способом, снова откройте контекстное меню, нажав на ярлык с именем рабочего листа.

4. В контекстном меню выбираете пункт «Показать» .

5. Вы можете выбрать любой из скрытых листов из появившегося списка, и все снова станет видимым.

Нет ничего сложного в том, чтобы скрывать и показывать скрытый лист в Excel. Этот способ подходит для людей, которые просто хотят удалить ненужную информацию, но для более серьезного скрытия следует использовать следующий вариант.

Когда пользователь даже не подозревает, что в книге есть скрытые страницы, практически никакие уловки не помогут ему определить их или догадаться об их существовании.

Процесс не сложный и вы можете сделать это самостоятельно, не зная Visual Basic, но все шаги, которые я описываю :

  • Шаг 1: Откройте, собственно, сам редактор Visual Basic, в котором будут производиться все изменения. Для пользователей Excel 2003 и ниже это можно сделать в меню «Инструменты» — «Макросы» — «Редактор Visual Basic». Для пользователей выше Excel 2003 начните с нажатия кнопки «Редактор Visual Basic». Вы также можете перейти на вкладку «Разработчик» или просто нажать Alt+F11 .
  • Шаг 2: Перейдите в меню «View» — «Project Explorer», чтобы отобразить окно VBA (Visual Basic Application) Project Object, или просто нажмите Ctrl+R (если включено, пропустите этот пункт).

  • Шаг 3: Снова перейдите в меню «Вид». — «Окно свойств» и просмотрите свойства окна или нажмите F4 на выбранном объекте.

  • Шаг 4: В появившемся окне «Свойства». Найдите свойство «Visible» и выберите значение «xlSheetVeryHidden» из выпадающего меню.

Вот и все! Теперь вы не можете узнать о существовании этого рабочего листа ни из какого другого источника, кроме редактора Visual Basic, и он больше не появляется во всех меню Excel. Как говорится, лучше спать, если меньше знаешь.

В общем, вы можете защитить свой проект с помощью VBA, но функциональность от этого не пострадает. Фактическая защита настраивается следующим образом:

1. Во включённом «Редакторе Visual Basic» выбираем меню «Tools» — «VBAProject Properties» , выбираем вкладку «Protection» .

2. Для активации защиты необходимо установить флажок «Заблокировать проект для просмотра». и, соответственно, чтобы разблокировать его, снять флажок.

И действительно, запишите и удалите свой пароль в полях «Пароль» и «Подтверждение пароля».

Следующие статьи могут быть вам интересны: Как скрыть другие элементы Excel: » » и » «.

Читайте так же:
Как скопировать ширину столбца в Excel?

Вот, в принципе, и все, что я хотел вам рассказать!

Экономика есть искусство удовлетворять безграничные потребности при помощи ограниченных ресурсов.
Лоренс Питер

В Excel листы бывают видимыми, скрытыми и очень скрытыми. Видимый лист отображается в списке листов книги. Скрытый лист не отображается в списке, но его можно отобразить с помощью стандартных методов. Существует также возможность использования макросов для включения и отключения очень скрытого режима. Диалоговое окно «Отображение скрытых листов» не отображает очень скрытые листы.

Поскольку большинство пользователей Excel не знают этого метода, его легко использовать, если нужно скрыть некоторую информацию.

Как сделать лист очень скрытым

Способ №1. Через надстройку VBA-Excel

Самый удобный способ, не требующий специальных навыков, скрыть большое количество листов — установить надстройку VBA-Excel. Скрытие и отображение листов в Excel происходит следующим образом:

Способ №2. С помощью свойства листов в редакторе кода

Чтобы скрыть лист, необходимо

Аналогично отображению скрытого листа, можно установить значение -1 — xlSheetVisible.

Способ №3. С помощью макросов

Можно сказать, что это самый сложный метод, но в то же время он более универсален. С помощью программирования можно, в частности, скрывать листы при различных условиях. Давайте пока ограничимся только скрытием и отображением.

  1. Откройте редактор кода, нажав Alt+F11 .
  2. В левом меню разверните проект с тем же именем, что и ваша книга.
  3. Создайте новый модуль (если у вас его еще нет), в котором мы напишем код для скрытия листьев.
  4. Зайдите в модуль и вставьте следующий код:

Иногда вы хотите спрятать лист со всем его содержимым от посторонних глаз. Обычно это делается из контекстного меню листа (для счастливых пользователей Excel 2007 читайте далее: ). Но при использовании этого метода необходимо защитить рабочую книгу, иначе любой может отобразить скрытые листы (тем же правым щелчком — Отобразить). Но что, если рабочую книгу не нужно защищать? Часто бывает необходимо разрешить пользователям работать со структурой рабочей книги, например, добавлять листы. Как скрыть лист, чтобы он не отображался? Существует довольно простой способ с помощью редактора VBA, и вам не нужны никакие знания программирования. Поэтому решите, какой лист вы хотите спрятать. Следующий:

  1. Войдите в редактор VBA (Alt +F11 )
  2. Нажмите Ctrl +R или перейдите в View -Project Explorer (чтобы отобразить окно VBA Project Objects)
  3. Нажмите F4 или перейдите в View -Properties Window (чтобы отобразить окно Properties)
  4. В левой части окна (в Project Explorer) найдите рабочую книгу, Откройте его папку (на скриншоте это VBA Project (Book1))
  5. Откройте папку Microsoft Excel Objects и выберите лист с нужным именем
  6. Найдите свойство Visible в окне Properties и установите его значение xlSheetVeryHidden.

Чтобы затем отобразить этот лист необходимо свойству Visible задать значение — xlSheetVisible . При этом для отображения листа необходимо будет обязательно зайти в редактор VBA — простым методом отобразить не получится. И книгу защищать не надо. Что нам и было необходимо.
Для большей надежности можно защитить проект VBA, чтобы не было возможности отобразить лист из VBA, не указав пароль. На функционал это не повлияет совершенно.
В том же окне VBA(Alt +F11 ):

  1. Tools -VBAProject Properties -вкладка Protection ;
  2. для защиты устанавливается галочка «Lock project for viewing «; для разблокировки — снимается;
  3. вписывается/удаляется сам пароль в полях Password и Confirm password .
Читайте так же:
Как сделать так, чтобы строка заголовка следовала при прокрутке листа в Excel?

Следующий макрос может быть использован для скрытия всех листов, кроме одного, помеченного как «Видимый», в книге:

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

При работе с большим файлом с большим количеством листов, для удобства спрячьте нерабочие листы или справочные листы. Верно? Однако бывают случаи, когда необходимо немедленно просмотреть все скрытые листы. Если вы хотите отобразить лист, вам нужно щелкнуть правой кнопкой мыши на списке листов или на ярлыке определенного листа. Затем можно выбрать нужный лист.

Что если таких листов 10, что если 70 (у меня такое было однажды)? Я хочу вернуть скрытые листы все сразу. Как я могу это сделать?

Для того чтобы отобразить все скрытые листы, существует полезный макрос ()

В открывшемся окне нажмите , чтобы вставить приведенный выше текст. Закройте окно. Вы создали . Вы можете вызвать созданный макрос, щелкнув и выбрав нужный макрос в открывшемся окне.

Как отобразить все скрытые листы если они пропали?

Горизонтальная полоса прокрутки, вероятно, была перемещена влево. Посмотрите на полосу прокрутки (на изображении) и перетащите ее вправо. Ярлыки должны находиться под

Если ярлыков и так нет, то перейдите в раздел: Меню Сервис — Параметры Excel — Дополнительно — Параметры книги — Показать ярлыки листов. Установите флажок.

P.S. Не забывайте, что вы можете переключаться с одного листа на другой при помощи клавиш, что очень практично.

Удерживая нажатой клавишу Ctrl при щелчке на каждом из нужных листов книги, можно выбрать несколько листов. Можно также выделить несколько листов одновременно, выбрав первый, удерживая нажатой клавишу Shift и выделяя последний. В результате все документы между ними будут выделены (этот метод также можно применить к файлам в папках). Щелкните листы правой кнопкой мыши и выберите Скрыть.

Читайте также интересную статью «.

Поделитесь нашей статьей в социальных сетях:

Коврики можно скрыть с помощью контекстного меню, щелкнув правой кнопкой мыши по ярлыку рабочего листа. Как описано в предыдущем уроке. Однако листы можно скрыть так, что они даже не будут видны в списке скрытых листов. И это без использования защиты структуры книги. Это можно сделать с помощью параметров, доступных в режиме редактора VBA (Alt+F11).

Как лучше скрыть лист в Excel

Рассмотрим следующий пример. Скройте «Лист3» обычным способом (с помощью опции «Скрыть» в контекстном меню).

» Sheet2″ будет скрыт параметрами редактора макросов в VBA. Для этого выполните следующие действия:

В списке скрытых листов мы не видим наш «Лист3». Он надежно скрыт. В редакторе VBA измените параметр «Visible» на «-1-xlSheetVisible», чтобы снова увидеть его.

Примечание. Третий параметр «0-xlSheetHidden» дает тот же результат, что и скрытие листа с помощью контекстного меню.

Полезный совет. Вы можете визуально скрыть маркеры листа:

Но в обоих случаях вы можете переключаться между страницами с помощью сочетаний клавиш CTRL+PageUp и CTRL+PageDown.

Полезный Лайфхак в Excel

Чтобы запретить вставку новых строк и столбцов в Excel без использования защиты листа, выполните следующее:

Читайте так же:
Как создать алфавитный список серий в Excel?

Вот и все, теперь вы не можете вставлять строки или столбцы в лист. Если вы хотите запретить только строки, введите любое значение в последней строке (например, A1048576). А если вы хотите отключить только столбцы, введите любое значение в последний столбец (например, XFD1).

Безопасное скрытие листов, которые нельзя отобразить стандартными средствами (опция «Показать»). Полезные советы по работе с листами и ячейками.

Защита книги Excel от копирования и печати

Общая защита рабочих книг и листов в Excel является грубой и не предоставляет пользователям ограниченных прав — если только вы не примените некоторые хитрости. [1] Вы можете контролировать действия пользователей, реагируя на события. События — это действия, которые происходят при работе с книгами и рабочими листами. Чаще всего вы открываете рабочую книгу, сохраняете ее, а затем закрываете, когда заканчиваете работу. В Excel можно заставить Excel выполнять код Visual Basic при наступлении одного из этих событий.

Отключение команды «Сохранить в рабочую папку

Вы можете сделать рабочую книгу несохраняемой и открыть ее в режиме только для чтения. Для этого выполните команду Сохранить как в рабочей книге и в окне Сохранить документ нажмите стрелку вниз на кнопке Сервис (рис. 1). Выберите параметр Общие настройки.

Рис. 1. Доступ к меню Общие параметры при сохранении книги Excel

Рисунок 1: Доступ к меню «Общие настройки» при сохранении рабочей книги Excel

Получите текст в формате Word или pdf, а примеры — в Excel (файл содержит макросы)

В открывшемся окне Общие настройки (рис. 2) установите пароль на Изменить и нажмите кнопку Рекомендовать доступ только для чтения. Нажмите OK, повторно введите пароль и сохраните книгу. Появится окно «Если книга с таким названием уже существует», хотите ли вы заменить ее? Нажмите Да.

Рис. 2. Задание пароля для изменения книги в окне Общие параметры

Рисунок 2: Установка пароля для смены книги в окне Общие параметры

Отключить команду Сохранить как рабочую книгу

Пользователи могут сохранять копию книги в другом месте, что можно отключить с помощью кода VBA. Чтобы отключить эту функцию, необходимо изменить предыдущий раздел.

В следующем коде вы будете использовать событие Before Save. Это событие впервые появилось в Excel 97. Событие происходит перед сохранением рабочей книги, что позволяет перехватить любые действия пользователя до их сохранения, выдать предупреждение и предотвратить сохранение файла в Excel.

Прежде чем использовать следующий прием, не забудьте сохранить рабочий каталог в формате *.xlsm с поддержкой макросов. Если вы введете этот код до сохранения рабочей книги, вы больше не сможете сохранить изменения.

Чтобы написать код, откройте рабочую книгу и пройдите по меню Разработчик –> Visual Basic. [2] В окне MicrosoftVisual Basic for Applications перейдите в окно ProjectVBAProject. Если нужно раскройте строку VBAProject (Защита книги Excel от копирования и печати. Примеры) и правой кнопкой мыши щелкните на значке ЭтаКнига. Выберите опцию View Code (рис. 3). Откроется окно Защита книги Excel от копирования и печати. Примеры.xlsx — Эта книга (Code). Это окно частного модуля для объекта ЭтаКнига. Это важно, и вы не добьетесь цели, если запишите код в обычном модуле.

Рис. 3. Открыто окно частного модуля для объекта рабочей книги

Рис. 3. Открыто окно частного модуля для объекта ThisBook

Чтобы вернуться к Excel, введите следующий код (рисунок 4) и нажмите Alt+Q.

Option Explicit
Private Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim lReply As Long
If SaveAsUI = True Then
lReply = MsgBox( » Sorry, you are not allowed to save this workbook as another name. » _
& » Do you wish to save this workbook. » , vbQuestion + vbOKCancel)
Cancel = (lReply = vbCancel)
If Cancel = False Then Me.Save
Cancel = True
End If
End Sub

Читайте так же:
Как создать блок-схему в Excel?

Рис. 4. Код в частном модуле ЭтаКнига

Рис. 4. Этот модуль содержит код для увеличения изображений (щелкните правой кнопкой мыши на изображении и выберите Открыть изображение в новой вкладке).

Проверьте, что у вас получилось. Выберите Файл -> Сохранить как, и вы увидите сообщение о том, что эту книгу нельзя сохранить под другим именем (рис. 5).

Рис. 5. Сообщение о запрете на сохранение книги под другим именем

Рис. 5. Сообщение о том, что книга не может быть сохранена под другим именем

Очень умные пользователи могут открыть редактор VBA, удалить код и сохранить книгу в другое место или под другим именем.

Запретить распечатку папок

Итак, вы запретили сохранять книгу, копировать книгу в другое место, но пользователи все равно могут распечатать данные. Используя событие Excel Before Print, вы можете отследить действия пользователя и предупредить его. Введите следующий код в окно для объекта ThisBook:

Option Explicit
Private Sub workbook_BeforePrint(Cancel As Boolean)
Cancel = True
MsgBox » Выводить эту рабочую книгу на печать нельзя » , vbInformation
End Sub

После завершения ввода кода нажмите комбинацию клавиш Alt+Q, чтобы вернуться в Excel. Теперь каждый раз, когда пользователи пытаются распечатать эту рабочую книгу, ничего не происходит. Строка сообщения MsgBox необязательна, но ее всегда полезно включить, хотя бы для того, чтобы проинформировать пользователя.

Если вы хотите запретить пользователям печатать только определенные листы в книге, используйте следующий код вместо предыдущего:

Option Explicit
Private Sub workbook_BeforePrint(Cancel As Boolean)
Select Case ActiveSheet.Name
Case » Sheet1 » , » Sheet2 »
Cancel = True
MsgBox » Выводить этот рабочий лист на печать нельзя » , vbInformation
End Select
End Sub

Обратите внимание, что печать останавливается только для листа1 и листа2. Названия листов, конечно, могут быть любыми по вашему желанию. Чтобы добавить их в список кодов, поместите их в перевернутые запятые, разделенные запятыми. Если вы хотите предотвратить печать только одного листа, введите только одно имя в инвертированных запятых без запятых.

Знающие пользователи по-прежнему смогут сделать скриншот коробки.

К сожалению, пользователи могут обойти эту защиту другими способами. Чтобы полностью отключить макросы, достаточно просто выключить их. Для этого перейдите в меню Файл -> Параметры -> Центр управления безопасностью и нажмите на кнопку Параметры центра управления безопасностью. В открывшемся диалоговом окне перейдите на вкладку Параметры макросов и переключитесь в положение Отключить все макросы без уведомления. В противном случае, если электронная таблица также содержит полезные для пользователя макросы, он, скорее всего, включит использование макросов. Безопасность данных — это не то, чего можно достичь с помощью этих трюков, которые являются лишь функциями удобства.

[1] По книге Д. Хоули, Р. Хоули. Excel 2007. Советы, стр. 28-32

[2] Если вкладки «Разработчик» нет, перейдите в меню Файл -> ПараметрыExcel -> Настроить ленту. Проверьте вкладку «Разработчик».

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector