Макрос для закрытия листа в excel

How to close an Excel workbook using VBA and macros, including how to save the file before you close it or discard any changes.

Sections:

Selecting Which Workbook to Close

Close Workbook While Saving Changes

Close Workbook Without Saving Changes

Let the User Decide to Save Changes or Not

Notes

Selecting Which Workbook to Close

First, we need to tell the macro to choose the current workbook to close or another workbook to close.

Current Workbook

We use this piece of code to close the current or currently active workbook and close that.

Other Workbook

We use this piece of code to close any specific open workbook.

Workbooks("test.xlsx").Close

Replace test.xlsx with the name of the file that you want to close.

Close Workbook While Saving Changes

To have Excel automatically save any changes for the workbook that you want to close, just put True behind the close workbook code from above like this:

ActiveWorkbook.Close True

or, to close a specific file like this:

Workbooks("test.xlsx").Close True

Close Workbook Without Saving Changes

To have an Excel window close WITHOUT saving any changes, just put False behind the close workbook code from above like this:

ActiveWorkbook.Close False

or, to close a specific file like this:

Workbooks("test.xlsx").Close False

Let the User Decide to Save Changes or Not

You use the basic code from the first section and don’t include a True or False after it and a dialog box will open asking if you want to save the file or not; it looks like this:

Close the currently active or visible workbook:

Close a specific workbook:

Workbooks("test.xlsx").Close

Notes

You may run into issues with messages popping up depending on your implementation of this code and your setup and it can help to turn off ScreenUpdating for Excel. Make sure to turn it back on when you are finished though.

If Application.DisplayAlerts is set to False before you close the workbook, you won’t see a popup asking if you want to save it or not before closing it. If this is the case, you may lose data if you wanted to save the file before closing it, so test your code on a sample workbook first.

Download the sample files for this tutorial to test everything out.

Similar Content on TeachExcel

Open Excel Workbook Using VBA Macros

Tutorial:
Simple way to open an Excel workbook using VBA and macros.

Syntax

Workbooks.Open («File…

Macro to get Data from Another Workbook in Excel

Tutorial:
Macro to get data from a workbook, closed or open, over a network or locally on your comp…

Get User Submitted Data from a Prompt in Excel using VBA Macros

Tutorial: How to prompt a user for their input in Excel.
There is a simple way to do this using VBA …

Interactive Clickable Buttons and Interface Without Using VBA/Macros in Excel

Tutorial:
How to make your Excel dashboards and worksheets more interactive and easier to view and …

Loop through a Range of Cells in Excel VBA/Macros

Tutorial: How to use VBA/Macros to iterate through each cell in a range, either a row, a column, or …

Kill Command in Excel (Delete Files Using VBA)

Tutorial:
How to safely remove, delete, kill any Excel file, or other file, using VBA Macros in Exc…

Subscribe for Weekly Tutorials

BONUS: subscribe now to download our Top Tutorials Ebook!

Skip to content

Как защитить рабочий лист в книге перед закрытием

На чтение 2 мин. Просмотров 1.5k.

Что делает макрос: Если Вам постоянно приходится думать о защите листов, прежде чем отправить свои файлы, этот макрос может помочь вам защитить рабочие листы перед закрытием

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как работает этот код
  4. Как использовать

Как макрос работает

Этот код запускается событием рабочей книги (BeforeClose— перед закрытием). При нажатии на кнопку закрыть срабатывает событие и запускается макрос. Макрос автоматически защищает рабочий лист, а затем сохраняет книгу

Код макроса

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Шаг 1: Защищает лист с паролем
Sheets("Отчет1").Protect Password:="Akademia_Excel"
'Шаг 2: Сохраняем книгу
ActiveWorkbook.Save
End Sub

Как работает этот код

  1. На шаге 1 мы явно указываем, какой лист мы хотим защитить — Отчёт, в данном случае. Мы также прописываем аргумент Password (пароль): = «Akademia_Excel». Это строка установит пароль для снятия защиты. Password (пароль) — аргумент не является обязательным. Если его не указывать, то лист будет по-прежнему защищен, но снять защиту сможет любой желающий. Кроме того, следует помнить, что пароли Excel чувствительны к регистру, так что обратите внимание на заглавные и строчные буквы в пароле.
  2. Шагом 2 мы говорим Excel сохранить книгу. Если мы не сохраним, то защита не будет действовать при следующем открытии книги.

Как использовать

Для реализации этого макроса, Вам нужно скопировать и вставить его в код события Workbook_BeforeClose. Размещение макроса здесь позволяет запускать макрос непосредственно перед закрытием excel-файла.

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. В окне проекта найдите свой проект/имя рабочей книги и нажмите на знак плюс рядом с ним в чтобы увидеть все листы и модуль ЭтаКнига.
  3. Правой кнопкой мыши нажмите на модуле ЭтаКнига и выберите View Code.
  4. В левой части окна выберите объект WorkBook (Excel автоматом предложит написать макрос для события Workbook_Open (можете позже удалить его за ненадобностью)
  5. В правом выпадающем списке свойство BeforeClose

rustim86

0 / 0 / 0

Регистрация: 01.09.2015

Сообщений: 50

1

Скрытие/отображение рабочих листов макросом

22.01.2016, 09:26. Показов 22454. Ответов 8

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Всем здравствуйте! Подскажите, пожалуйста, есть ли возможность реализовать в VBA скрытие/отображение листов по признаку закрытый лист сделать открытым, и наоборот. Или код приведенный ниже сделать как-то компактнее что ли, дабы не писать команду для каждого отдельного листа с его названием. Заранее благодарю.

Visual Basic
1
2
3
4
5
6
ThisWorkbook.Sheets("Лист1").Visible = xlSheetVisible
ThisWorkbook.Sheets("Лист2").Visible = xlSheetVisible
ThisWorkbook.Sheets("Лист3").Visible = xlSheetVisible
ThisWorkbook.Sheets("Лист4").Visible = xlSheetVisible
ThisWorkbook.Sheets("Лист5").Visible = xlVeryHidden
ThisWorkbook.Sheets("Лист6").Visible = xlVeryHidden



0



Казанский

15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

22.01.2016, 09:50

2

Цитата
Сообщение от rustim86
Посмотреть сообщение

закрытый лист сделать открытым, и наоборот

Можно, но надо позаботиться о том, чтобы в любой момент хотя бы один лист был видимым.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub rustim86()
Dim i&, c As New Collection
  For i = 1 To ThisWorkbook.Sheets.Count
    If ThisWorkbook.Sheets(i).Visible = xlSheetVisible Then
      c.Add i
    Else
      ThisWorkbook.Sheets(i).Visible = xlSheetVisible
    End If
  Next
  If c.Count = ThisWorkbook.Sheets.Count Then
    MsgBox "в книге нет скрытых листов - невозможно скрыть все листы"
    Exit Sub
  End If
  For i = 1 To c.Count
    ThisWorkbook.Sheets(c(i)).Visible = xlSheetVeryHidden
  Next
End Sub



1



Shersh

Заблокирован

22.01.2016, 09:52

3

Visual Basic
1
2
3
for each sh in ThisWorkbook.Sheets
if sh.Visible=-1then sh.Visible=2else sh.Visible=-1
next

однако хотя бы один лист в книге должен быть отображен, имейте ввиду.



1



0 / 0 / 0

Регистрация: 01.09.2015

Сообщений: 50

22.01.2016, 09:58

 [ТС]

4

Казанский, благодарю!

Добавлено через 1 минуту
Shersh, да-да, я знаю, опытным путем уже узнал это И вам спасибо!



0



0 / 0 / 0

Регистрация: 17.03.2023

Сообщений: 9

24.03.2023, 09:46

5

Здравствуйте, уважаемые форумчане!
Я не программист, просто пытаюсь облегчить себе работу в excel и ищу готовые коды. В другой теме уже спрашивал, но может не в той теме задаю вопрос, поэтому нет ответа или пока некогда ответить.

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



0



АЕ

ᴁ®

Эксперт MS Access

3070 / 1736 / 361

Регистрация: 13.12.2016

Сообщений: 5,938

Записей в блоге: 4

24.03.2023, 10:05

6

Цитата
Сообщение от Алик73
Посмотреть сообщение

В другой теме уже спрашивал, но может не в той теме задаю вопрос, поэтому нет ответа или пока некогда ответить.

Может пора создать свою тему?

Добавлено через 5 минут

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("E4:E100")) Is Nothing Then
        Target.Font.Name = "Marlett"
        If Target = "a" Then
            Target = ""
            ThisWorkbook.Sheets(Target.Offset(0, -1).Value).Visible = xlVeryHidden
        Else
            Target = "a"
            ThisWorkbook.Sheets(Target.Offset(0, -1).Value).Visible = xlSheetVisible
        End If
        Target.Offset(0, 1).Activate
    End If
End Sub

Добавлено через 4 минуты
однако надо или

Visual Basic
1
On Error Resume Next

вставить, либо Range(«E4:E8») ограничить…



1



0 / 0 / 0

Регистрация: 17.03.2023

Сообщений: 9

24.03.2023, 11:00

7

АЕ, спасибо!

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

Помогите еще, пожалуйста, что надо добавить в этот код, чтобы по снятию/установке галочки скрывались/показывались строки, с 1 по 5 например, на необходимом листе. Заранее благодарю!



0



ᴁ®

Эксперт MS Access

3070 / 1736 / 361

Регистрация: 13.12.2016

Сообщений: 5,938

Записей в блоге: 4

24.03.2023, 11:30

8

Цитата
Сообщение от Алик73
Посмотреть сообщение

Помогите еще, пожалуйста,

Поэтому и говорю. Создайте тему. Я же вижу, что ваша хотелка бесконечна и однообразна до безобразия.



0



0 / 0 / 0

Регистрация: 17.03.2023

Сообщений: 9

24.03.2023, 11:51

9

АЕ, пока вопрос не снят, поэтому и однообразен.
Хорошо, спасибо.



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

24.03.2023, 11:51

Помогаю со студенческими работами здесь

Разделение списка расчетных листов на листы или файлы PDF макросом
Доброго дня, форумчане! Есть такой вопрос — есть файл Excel, выгруженный из 1С, со списком…

Сбор рабочих листов из внешних файлов с последующим выполнением другого макроса
Использую прекрасный макрос с форума,-спасибо. Макрос умеет открывать много файлов "в один" — одну…

Объекты Excel VBA: рабочие листы. Примеры структур рабочих листов в приложении, их связь и изменчивость
Ребята,помогите найти информацию…ума не приложу,что нужно искать…
7. Объекты Excel VBA:…

Скрытие и отображение столбцов
Возникла такая задачка:
Есть 3 вида стоблбцов, которые чередуются (1-й вид, 2-вид, 3-й вид, 1-й…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

9

закрытие екселя с сохранением и без предупреждения (Макросы/Sub)

​Смотрите также​​ клавиатуре)​ для нажатия кнопки:​ просто скрывает формулу​ перехватывать события на​ сценарии. Она такая.​ с Книги3 в​
​Mishel915​ одном Макросе1) книги.​ ‘и закрываю окно​
​: Кнопочка с решёткой,​
​ As Excel.Application) app.ActiveWorkbook.Close​
​ как. По-видимому, работающий​
​:​
​ другое сообщение, хотя​
​ файл Эксель, да​

​ True)​​85Muslim85​
​Не хочу размещать​
​Private Sub CommandButton1_Click()​
​ от пользователя​ уровне Application.​ В коллекции Workbooks​
​ Книгу1, потом перейти​
​:​Если команда о​ редактора VBA​
​ однако​
​ 0 app.Quit End​
​ макрос не дает​
​Mary_Rustle​ ничего принципиального я​ так чтобы и​Workbooks.Close True​: добрый день, скажите​
​ кнопки на форме​
​ Unload Me Set​метод Unload (имя​Mishel915​ фиксируется определённый порядок​ в Книгу2, потом​
​EducatedFool !​
​ закрытии книг поступает​Возможно и Вам​Glen​ SubА в самой​ выполнить команду Quit.​, а какой смысл​
​ не поменяла:​ в скрытых процессах​' закрыть без​ как закрыть ексель​
​ - так сделай​

​ UserForm1 = Nothing​​ формы) — выгружает​: Работает так :​ чередования открытых книг,​
​ перейти в Книгу1,​
​Спасибо за этюд.​
​ из Книги1, то​

excelworld.ru

VBA Access: как закрыть книгу Эксель без сохранения?

​ это поможет.​​: не получается код​
​ книге прописать​ Можно попробовать накидать​ открывать файл Excel​
​Помогите, пожалуйста, это​ его тоже не​ сохранения (без запроса​ (полностью выйти) с​ ее масенькой (все​ End Sub​ форму из памяти​Sub Макрос1() Dim​
​ который не меняется.​
​ после чего подать​Да, необходимо было​ закрывается только Книга1.​Glen​ прикрепить​Sub QE() Dim​ нажатий клавиш, типа​ и запускать макрос,​ очень большая проблема,​ было.​ подтверждения пользователя, даже​ сохранением под таким​ размеры и положение=1​flower2005​ и закрывает её​ wb As Workbook​ Код размещён в​ команду о закрытии​ подойти к ThisWorkbook​ Книга2 остаётся открытой.​:​Glen​ obj As Object​Код Sub closeE()​ если файл потом​ уже долго бьюсь​

​Я делаю следующее:​ если .DisplayAlerts =​ же названием и​ — прекрасно работает.Пусть​: А может быть,​CердЖиГ​

​ For Each wb​ Книге3, а запускается​ двух книг, то​ с другой стороны​Очевидно это происходит​

​ОлеггелО​​:​
​ Set obj =​ Set sh =​
​ закрывается без сохранения​ над ней, никаких​
​Private Sub Кнопка0_Click()​ True)​ без предупреждения​ в проекте существует​ стоит обработать событие​: Всем спасибо уже​ In Workbooks If​ с Книги1. Как​ закрывается только Книга1?​ !​ из-за того, что​,​Sub rr()​ CreateObject(‘Имя класса’) obj.ExcelQuit​ CreateObject(‘WScript.Shell’) sh.SendKeys (‘{F10}{Down​ (oBook.Close​ успехов!​ FullFilePath = «C:Папка7​Workbooks.Close False​скажите что в​

​ Userform1, тогда:​​ UserForm_KeyPress и,​​ сделал так :-)​​ wb.Name <> Application.ActiveWorkbook.Name​ только в коде​ Книга2 остётся не​Достаточно всего лиш​ управляющая книга (книга​спс.​​Set VBProj =​​ Application End SubЕсли​ 9}{Enter}{Right}{Enter}’) End Sub​False​Mary_Rustle​

​ свод реестров 2015_9.xlsm»​​’ закрыть Excel​​ этом коде не​​Private Sub UserForm_KeyPress(ByVal​если это клавиша​

CyberForum.ru

Надо закрыть через VBA Excel ,без сохранения и без выскакивания запросов на сохранеие

​Private Sub CommandButton1_Click()​​ And wb.Name <>​ подошла очередь закрыть​ закрытой?​Sub test() Dim​
​ с управляющим макросом)​Mishel915​

​ ActiveWorkbook.VBProject​​ установлен ODE, то​ Здесь надо подрегулировать​)? Этот макрос, что​: Ответ найден!​
​ Dim app As​ (закроется только если​ так((((​ KeyAscii As MSForms.ReturnInteger)​ ESC, выполнить закрытие​Unload userform1​ ThisWorkbook.Name Then wb.Close​ Книгу1, код её​4. Если перейти​ wb As Workbook​
​ закрывается первой, после​: Всем доброе время​Set VBComp =​ создание такой dll​ цифру в {Down​ ли, создает какой-то​Видимо плохо раньше​ Object Set app​ в этом же​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub вава()​ If KeyAscii =​

​ формы, а на​​ActiveWorkbook.Save​ Next Application.ActiveWorkbook.Close End​ закрывает, после чего​ с Книги3 в​
​ For Each wb​ чего выполнение Макроса1​
​ суток !​ VBProj.VBComponents(«Лист3»)​ займет несколько минут​
​ 9}. Да и​ другой файл, который​ старалась​
​ = CreateObject(«Excel.Application») With​ Application больше нет​Range(«A1») = 1​ 27 Then MsgBox​ другие клавиши не​
​End Sub​ Sub​ выполнение кода прекращается​ Книгу1, потом перейти​ In Workbooks If​
​ прекращается.​Две книги Excel​Set CodeMod =​Glen​ работает это только​ потом используется?​Изменила код следующим​ app .Workbooks.Open FullFilePath​

CyberForum.ru

Закрыть окно редактора VBA макросом (Макросы/Sub)

​ открытых и не​​Workbooks.Application.DisplayAlerts = False​
​ ‘Была нажата ESC,​ реагировать.​Pavel55​СердЖиГ​
​ так как код​ в Книгу2, потом​ wb.Name <> ThisWorkbook.Name​Такой вопрос :​
​ (Книга1 и Книга2)​ VBComp.CodeModule​

​: Доброго дня.​​ с листа Excel,​
​Mary_Rustle​ образом:​
​ End With app.Run​

​ сохраненных книг,​​Excel.ActiveWorkbook.SaveAs («rl.xlsm»)​
​ прячем форму’ UserForm1.Hide​flower2005​: )) ну, всё​

​: Уважаемые форумчане!​​ запущен с Книги1.​ перейти в Книгу1,​%)

​ Then wb.Close Next​​ какой должен быть​ закрываются в одном​

​With CodeMod​​В работе макрос​​ а из среды​
​:​Private Sub Кнопка0_Click()​
​ "diap" app.Quit Set​' иначе будет​
​Workbooks.Close​ Else 'ничего не​
​: Кто тебя учил​
​ правильно) только вы​Напомните, плиззз, команды​
​ Все книги, которые​ потом перейти в​
​ End SubКнига3 должна​ код для закрытия​
​ макросе, например так​
​lLineNum = .CreateEventProc("Change",​
​ переносит модуль процедуры​

​ разработки не работает.​​Казанский​​ FullFilePath = «C:папка7​​ app = Nothing​ запрашивать подтверждения сохранения,​End Sub​ делаем End If​​ выгружать (unload) форму​ спрашивали о сохранении​ в VBA для​
​ стоят в очереди​ Книгу2, после чего​ оставаться для выбора​
​ всех книг, записанных​ :​

​ «Worksheet»)​​ события на новый​​oldpasp​​, спасибо) Действительно глупость.​
​ свод реестров 2015_9.xlsm»​

excelworld.ru

Как в одном макросе закрыть все книги Excel?

​ DoCmd.SetWarnings False DoCmd.RunSQL​​ при .DisplayAlerts =​KSV​
​ End SubКстати, а​ в кнопке? Не​ формы, а сами​ сохранения и закрытия​ на закрытие после​
​ подать команду о​
​ нового действия.​ в Макросе1, не​Код:​lLineNum = lLineNum​ лист.​: Так как макрос​ Исправила на (oBook.Save).​ Dim app As​ «DELETE Свод_реестров.* FROM​ True)​
​: все правильно​ какие элементы есть​ руби сук, на​ сохраняете активную книгу​
​ userform.​
​ Книги1, теперь не​ закрытии двух книг,​Не всё пока​
​ зависимо от порядка​Sub Макрос1() On​ + 1​При этом почему​ расположен в какой-либо​
​Штурмaн​ Object Dim oBook​ Свод_реестров» DoCmd.TransferSpreadsheet acImport,​Application.Quit​200?’200px’:»+(this.scrollHeight+5)+’px’);»>’ подавляет предупреждения Excel​ на форме?​ котором сидишь! Напиши​
​ ) или нам​Спасибо!​ закроются из-за того,​ то закрываются обе​ получается.​ расположения книг в​ Error Resume Next​.InsertLines lLineNum, «call​ то само открывается​ книге, то выполнив​: Помогите чайнику.Надо закрыть​ As Object Set​ , «Свод_реестров», FullFilePath,​85Muslim85​

​Workbooks.Application.DisplayAlerts = False​​Код может и​ в коде кнопки​ надо было догадаться​Pavel55​ что код уже​ книги!​1. Если перейти​

​ Макросе1. Очевидно в​​ Workbooks(«Книга1»).Close (SaveChanges) Workbooks(«Книга2»).Close​​ Izm(Target)»​​ окно редактора VBA.​
​ команду​ через VBA Excel​ app = CreateObject(«Excel.Application»)​ True, «Свод_реестров» CurrentDb.Execute​
​: все отлично)) спасибки…​
​’ сохраняет книгу​ не сработать, если,​ me.hide — это​ ?)​: А что значит​ не выполняется.​Таким образом в​ с Книги3 в​ Макросе1 необходимо определить​
​ (SaveChanges) On Error​End With​
​ По типу Alt+F11.​Application.Quit получаем запрос​ ,без сохранения и​ Set oBook =​ «DROP TABLE [Свод_реестров_ОшибкиИмпорта]»​ вот чего я​
​ в файл С​ например, фокус на​ переведет тебя в​СердЖиГ​ сохранить? У формы​Код будет срабатывать​ 3-ем сценарии код​ Книгу1, после чего​
​ управляющую книгу, т.​ GoTo 0 End​VBProj.VBE.MainWindow.Visible = False​Подскажите как кодом​ на сохранение​ без​ app.workbooks.Open(FullFilePath) app.Run «diap»​ DoCmd.SetWarnings True MsgBox​ хотел)​ ДРУГИМ именем​ TextBox(e).Только ListBox​
​ команду в вызывающей​: Павел, сорри, уже​ нет такой функции​ всегда, если его​ почемуто не видит​ подать команду о​ е. книгу с​ SubМакрос1 находится в​End Sub​ его закрыть.​А если предварительно​
​выскакивания запросов на​ oBook.Close False app.Quit​ «Импорт успешно завешен»​Workbooks.Application.DisplayAlerts = False​

​Excel.ActiveWorkbook.SaveAs («rl.xlsm»)​​К этой процедуре​ процедуре после show​
​ вечер был :-)​А закрыть можно​ запускать с книги​ Книги2.​ закрытии Книги1, то​ которой поступила команда,​ Книге3. Проэкт состоит​ОлеггелО​Glen​ закрыть книгу без​ сохранеие​ Set app =​ End SubРаньше все​Excel.ActiveWorkbook.Save​’ сохраняет книгу​ надо обратиться с​ — сделай там,​Димит​ так​ в которой он​Mishel915​ закрывается!​ и закрыть её​ из трёх книг​:​: Вроде так помогает​ сохранения​palva​ Nothing DoCmd.SetWarnings False​
​ работало хорошо за​Application.Quit​ в файл С​ фактическим параметром KeyAscii​ что требуется, а​
​: Не получается закрыть​Sub Макрос1()​ размещён.​: Установил причину не​2. Если перейти​ последней.​ — Книга1, Книга2,​Glen​Set VBProj =​Application.ActiveWorkbook.Close 0 то​

​: Закрыть одну из​​ DoCmd.RunSQL «DELETE Свод_реестров.*​
​ исключением следующего: когда​Mary_Rustle​ ТЕМ ЖЕ именем​ — как это​ затем выгружай форму!​ форму при нажатии​’или так​Если код запускать​ срабатывания кода​

CyberForum.ru

VBA сохранить&закрыть userform

​ с Книги3 в​​EducatedFool​

​ Книга3.​, здравствуйте. Я так​ ActiveWorkbook.VBProject​ работа макроса прекращается​

​ книг, если макрос​

​ FROM Свод_реестров» DoCmd.TransferSpreadsheet​​ уже после успешного​: Добрый день!​Excel.ActiveWorkbook.Save​

​ — ПРОШУ ПРОЩЕНИЯJohny​Димит​

​ ESC!!​
​Unload UserForm1 ‘закрыть​
​ с других книг,​Sub test() Dim​ Книгу1, потом перейти​
​: Sub test() Dim​
​Если команда о​
​ делал (топорно конечно),​

​VBProj.VBE.MainWindow.Visible = False​ (книга то закрывается)​ находится в другой,​
​ acImport, , «Свод_реестров»,​ выполнения модуля я​Мои попытки найти​’ закрывает книгу​

​ Walkerу​​: Не хочу размещать​Помогите!!​
​ и выгрузить из​
​ то на его​
​ wb As Workbook​
​ в Книгу2, после​

​ wb As Workbook​​ закрытии книг поступает​ добавьте перед «End​Glen​Значит надо объединить​ можно так:​ FullFilePath, True, «Свод_реестров»​ пыталась открыть файл​ нужное не увенчались​

​Workbooks.Close​​Почему нельзя Unload​ кнопки на форме​

planetaexcel.ru

VBA Excel закрытие формы на листе

​flower2005​​ памяти форму​ работу будет влиять​ For Each wb​
​ чего подать команду​

​ For Each wb​​ из Книги2, например​ sub»​: Код не покажу.​ эти команды: можно​Код Application.DisplayAlerts =​
​ CurrentDb.Execute «DROP TABLE​ эксель, мне выдавалось​ успехом, помогите пожалуйста!​’ закрыть с​

​ в кнопке?​​ — как и​: Разместите на форме​’или так​
​ порядок размещения открытых​ In Workbooks If​ о закрытии двух​ In Workbooks If​ так :​

​SendKeys «%{F11}», True ‘делаю​​Не знаю как​ сделать dll (AddIn),​ False Windows(‘Книга2’).Close Application.DisplayAlerts​ [Свод_реестров_ОшибкиИмпорта]» DoCmd.SetWarnings True​ следующее предупреждение:​Нужно после запуска​ сохранением (без запроса​А куда Я​ где завязать закрытие​ кнопку. Установите её​UserForm1.Hide ‘скрыть форму​ книг в коллекции​ wb.Name <> ThisWorkbook.Name​

​ книг, то закрываются​​ wb.Name <> ThisWorkbook.Name​Код:​ активным окно редактора​ его тут правильно​ где будут выполняться​ = True Закрыть​ MsgBox «Импорт успешно​

​Теперь не понятно​ модуля Эксель через​ подтверждения пользователя, даже​ выйду, если форма​ моей формы на​ свойство Сancel как​End Sub​ Workbooks! Очевидно на​
​ Then wb.Close Next​ обе книги!​ Then wb.Close Next​Application.Run «‘Книга3.xls’!Макрос1″,то закрываются​ VBA​ оформить.​ эти действия​ весь Excel из​ завешен» End Sub​ по какой причине,​ Аксесс полностью закрыть​
​ если .DisplayAlerts =​ vbModeless?​ нажатие Esc (на​ True. Напишите код​
​метод Hide -​ такой случай необходимо​ End Subв 3-ем​3. Если перейти​ ThisWorkbook.Close End Sub​ обе (все в​
​SendKeys «%{F4}», True​Udik​
​Public Sub ExcelQuit(app​ макроса не знаю​Казанский​

CyberForum.ru

​ он стал выдавать​

I assume from your question that you want to create a kind of navigation that hides all but the active sheet.

If this is what you’re looking for, you’ll need something like the following code:

In a Module:

Global Const cStrHomeSheet As String = "Home"

Public Sub subGotoSheet(strSheetName As String)
    On Error GoTo ErrorHandler
    Dim wsActive As Worksheet

    Application.ScreenUpdating = False

    Set wsActive = ActiveSheet

    Sheets(strSheetName).Visible = xlSheetVisible
    Sheets(strSheetName).Activate

    wsActive.Visible = xlSheetVeryHidden

    Application.ScreenUpdating = True

    Exit Sub

ErrorHandler:
    MsgBox "Cannot find worksheet " & strSheetName
End Sub

Public Sub subGotoHomeSheet()
    subGotoSheet cStrHomeSheet
End Sub

Public Sub subGotoSheetFromCaller()
    subGotoSheet Application.Caller
End Sub

Public Sub subHideAll()
    Dim ws As Worksheet

    Application.ScreenUpdating = False
    ActiveWindow.DisplayWorkbookTabs = False

    Sheets(cStrHomeSheet).Visible = xlSheetVisible
    Sheets(cStrHomeSheet).Activate
    For Each ws In Sheets
        If ws.Name  cStrHomeSheet Then _
            ws.Visible = xlSheetVeryHidden
    Next

    Application.ScreenUpdating = True
End Sub


Public Sub subShowAll()
    Dim ws As Worksheet

    Application.ScreenUpdating = False
    ActiveWindow.DisplayWorkbookTabs = True

    For Each ws In Sheets
        ws.Visible = xlSheetVisible
    Next

    Application.ScreenUpdating = True
End Sub    

In addition, place the following code in the ThisModule module:

Private Sub Workbook_Open()
    subHideAll
End Sub

Explanation & usage:

The code in the ThisWorkbook module will hide all but the home worksheet up loading the workbook. (To hide the fact that you’re switching worksheets, it also hide the worksheet tab bar at the bottom left of the window).

By calling a subGotoSheet "DestinationSheet" you can now «activate», i.e. unhide the target sheet — the old sheet will be hidden. To make your life a bit easier, you can also call subGotoHomeSheet — and even more important, use subGotoSheetFromCaller. This one is really neat if you combine it with buttons (or any shapes for that matter): if you insert a button or shape into a worksheet, assign this macro to it. You now only need to name the item (using the name box left of the formula field) according to your target sheet — and the button will automatically get you to desired sheet!

Last but not least, I assume you’ll also need a «developer mode» in which you’ll see and edit all sheets. To do this, run subShowAll, to go back, run subHideAll. I’d recommend you to assign shortcut keys to both macros, so you can quickly switch between developer and user mode.

Понравилась статья? Поделить с друзьями:
  • Макрос для закрытия всех книг в excel
  • Макрос для добавления строк таблицы excel
  • Макрос для добавления строк в excel по условию
  • Макрос для добавления новой строки в excel
  • Макрос для добавления листа в excel