Создать новую книгу
Для создания новой рабочей книги вы используете функцию добавления рабочих книг. Эта функция создает новую пустую книгу. Это то же самое, что выбрать «Новая книга» в меню «Файл Excel».
Когда
вы создаете новую книгу, вы, как правило, хотите сохранить ее. Следующий код
показывает вам, как это сделать.
Sub SozdatKnigu() Dim wrk As Workbook Set wrk = Workbooks.Add ' Сохранить как xlsx. Это по умолчанию. wrk.SaveAs "C:\Temp\Пример.xlsx" ' Сохранить как макрокоманду wrk.SaveAs "C:\Temp\Пример.xlsm", xlOpenXMLWorkbookMacroEnabled End Sub
Когда вы создаете новую книгу, она обычно содержит три листа. Это определяется свойством Application.SheetsInNewWorkbook.
Если вы хотите, чтобы в новой книге было другое количество
листов, измените это свойство перед созданием новой книги. В следующем примере
показано, как создать новую книгу с семью листами.
Sub SozdatKniguMnStr() ' Сохраните значение SheetsInNewWorkbook, чтобы мы могли сбросить его позже Dim sheetCnt As Long sheetCnt = Application.SheetsInNewWorkbook ' Установите листы в новой книге, чтобы быть 7 Application.SheetsInNewWorkbook = 7 ' Рабочая книга будет создана из 7 листов Dim wrk As Workbook Set wrk = Workbooks.Add ' Показать количество листов Debug.Print "number of sheets: " & CStr(wrk.Worksheets.Count) ' Сброс к первоначальному значению Application.SheetsInNewWorkbook = sheetCnt End Sub
Что такое VBA Excel и зачем он нужен
VBA Excel позволяет создавать и редактировать макросы – серию команд и инструкций, которые могут выполняться автоматически или по требованию пользователя. Это особенно полезно при работе с большими объемами данных, когда требуется быстро выполнить рутинные операции, такие как фильтрация, сортировка, вычисления и форматирование.
VBA Excel также позволяет создавать пользовательские формы, которые упрощают ввод данных и взаимодействие с пользователем. Например, вы можете создать форму для заполнения определенных ячеек или для выполнения определенных операций, таких как поиск или обработка данных.
Таким образом, VBA Excel является мощным инструментом для автоматизации задач и улучшения процесса работы с данными в Excel. Он позволяет сэкономить время и упростить рутинные операции, что особенно ценно для тех, кто регулярно работает с таблицами и данными в Excel.
Указание параметров сохранения
При сохранении файла в VBA Excel можно указать различные параметры, которые определяют формат, расположение и другие характеристики сохраняемого файла. Это позволяет настроить сохранение таким образом, чтобы оно полностью соответствовало требованиям пользователя.
Один из основных параметров — это формат файла. В Excel есть несколько различных форматов, которые могут быть использованы при сохранении файла. Некоторые из наиболее распространенных форматов включают .xlsx (стандартный формат Excel), .xlsm (формат с макросами) и .csv (формат значений, разделенных запятыми).
Кроме того, можно указать расположение, в котором будет сохранен файл. Для этого можно использовать путь к папке или указать полный путь к файлу, включая имя файла и его расширение. Также существует возможность указать, следует ли заменять существующий файл с таким же именем или сохранять новый файл с уникальным именем.
Другие параметры сохранения включают опции автосохранения, разделитель значений для формата .csv, пароль для защиты файла и другие. Параметры могут быть указаны в коде VBA перед сохранением файла или внутри диалогового окна сохранения, где пользователь может выбрать нужные настройки.
Указание параметров сохранения позволяет настроить сохранение файла в VBA Excel таким образом, чтобы оно отвечало конкретным требованиям пользователя. Это удобно при автоматизации процессов, когда необходимо сохранять файлы с определенными характеристиками или в определенном месте.
Проверить открыта ли книга
Если вы открываете книгу только для чтения, то не имеет значения, открыта ли она уже. Тем не менее, если вы собираетесь обновить данные в рабочей книге, рекомендуется проверить, открыты ли они.
Приведенную ниже функцию можно использовать для проверки,
открыта ли книга в данный момент. Если нет, то откроется рабочая книга. В любом
случае вы получите открытую рабочую книгу.
Function GetWorkbook(ByVal sFullFilename As String) As Workbook Dim sFilename As String sFilename = Dir(sFullFilename) On Error Resume Next Dim wk As Workbook Set wk = Workbooks(sFilename) If wk Is Nothing Then Set wk = Workbooks.Open(sFullFilename) End If On Error Goto 0 Set GetWorkbook = wk End Function
Вы можете использовать эту функцию так:
Sub PrimerOtkritiyaKnigi() Dim sFilename As String sFilename = "C:\Документы\Книга2.xlsx" Dim wk As Workbook Set wk = GetWorkbook(sFilename) End Sub
Этот код хорош в большинстве ситуаций. Однако, если рабочая книга может быть открыта в режиме только для чтения или может быть открыта в данный момент другим пользователем, возможно, вы захотите использовать немного другой подход.
Простой способ справиться с этим в этом сценарии состоит в
том, чтобы настаивать на том, что файл должен быть закрыт для успешного запуска
приложения. Вы можете использовать функцию ниже, чтобы просто проверить, открыт
ли уже файл, и если это так, сообщить пользователю, что он должен быть закрыт в
первую очередь.
' Функция для проверки, если книга уже открыта Function IsWorkBookOpen(strBookName As String) As Boolean Dim oBk As Workbook On Error Resume Next Set oBk = Workbooks(strBookName) On Error GoTo 0 If Not oBk Is Nothing Then IsWorkBookOpen = True End If End Function
Пример использования этой функции показан ниже. В этом
случае, если рабочая книга уже открыта, вы сообщаете пользователю, что она
должна быть закрыта для продолжения макроса.
Sub PrimerIsp() Dim sFilename As String sFilename = "C:\temp\writedata.xlsx" If IsWorkBookOpen(Dir(sFilename)) = True Then MsgBox "File is already open. Please close file and run macro again." Exit Sub End If ' Написать в книгу здесь End Sub
Если вам нужно проверить, открыта ли книга в другом экземпляре Excel, вы можете использовать атрибут ReadOnly книги. Будет установлено значение true, если оно открыто в другом экземпляре.
Метод Workbooks.Close
Вы также можете применить метод Close к коллекции всех открытых книг Excel. Другими словами, вы можете использовать метод Workbooks.Close для одновременного закрытия всех книг Excel.
Основной синтаксис Workbooks.Close следующий:
«выражение» представляет коллекцию Workbooks. Поэтому я упрощаю вышеизложенное следующим образом:
Метод Workbooks.Close в некоторой степени похож на описанный выше метод Workbook.Close. Например, макросы Auto_Close не выполняются при закрытии книги любым из этих методов. Поэтому мои комментарии выше относительно макросов Auto_Close и Workbook.Close также в целом применимы к Workbooks.Close.
Однако между Workbook.Close и Workbooks.Close есть очень важное различие:
Workbooks.Close не принимает параметров. Как я объяснил выше, Workbook.Close имеет 3 параметра (SaveChanges, Filename и RouteWorkbook).
Как следствие вышеизложенного, если вы хотите использовать какие-либо (или все) описанные выше параметры при закрытии всех открытых книг, вам обычно приходится полагаться на циклы.
Кроме того, ниже я привожу примеры кода макросов, которые можно использовать для закрытия всех открытых книг одним из следующих двух способов:
Откройте книгу с помощью VBA
Вы можете использовать VBA для открытия определенной книги, если знаете путь к файлу книги.
Приведенный ниже код откроет книгу — Examples.xlsx, которая находится в папке Documents в моей системе.
Sub OpenWorkbook () Workbooks.Open ("C: \ Users \ sumit \ Documents \ Examples.xlsx") End Sub
Если файл существует в папке по умолчанию, которая является папкой, в которой VBA сохраняет новые файлы по умолчанию, вы можете просто указать имя книги — без полного пути.
Sub OpenWorkbook () Workbooks.Open ("Examples.xlsx") End Sub
Если книга, которую вы пытаетесь открыть, не существует, вы увидите сообщение об ошибке.
Чтобы избежать этой ошибки, вы можете добавить несколько строк в свой код, чтобы сначала проверить, существует ли файл или нет, и, если он существует, попробуйте его открыть.
Приведенный ниже код проверит местоположение файла и, если он не существует, отобразит настраиваемое сообщение (не сообщение об ошибке):
Sub OpenWorkbook () If Dir ("C: \ Users \ sumit \ Documents \ Examples.xlsx") "" Then Workbooks.Open ("C: \ Users \ sumit \ Documents \ Examples.xlsx") Else MsgBox "Файл не "не существует" Конец Если Конец Подп.
Вы также можете использовать диалоговое окно «Открыть», чтобы выбрать файл, который хотите открыть.
Sub OpenWorkbook () При ошибке Возобновить следующий Dim FilePath As String FilePath = Application.GetOpenFilename Workbooks.Open (FilePath) End Sub
Приведенный выше код открывает диалоговое окно Открыть. Когда вы выбираете файл, который хотите открыть, он назначает путь к файлу переменной FilePath. Workbooks.Open затем использует путь к файлу для открытия файла.
Если пользователь не открывает файл и нажимает кнопку «Отмена», FilePath принимает значение False. Чтобы избежать появления ошибки в этом случае, мы использовали оператор «On Error Resume Next».
Связанный
Закрытие файла без сохранения
В VBA Excel существует возможность закрыть файл, не сохраняя внесенные в него изменения. Для этого можно использовать метод Close объекта Workbook, который представляет собой открытую книгу.
Пример использования метода Close без сохранения файла:
В данном примере создается объект Книга, который инициализируется активной книгой, то есть той, в которой выполняется текущий макрос. Затем вызывается метод Close с параметром SaveChanges:=False. При указании значения False параметра SaveChanges, Excel закрывает файл, не сохраняя внесенные изменения.
Таким образом, данный код позволяет закрыть файл без подтверждения сохранения. Это может быть полезно, если вы выполнили изменения, но вам не требуется сохранять их.
Как настроить сохранение без запроса подтверждения вручную?
1. Сохранение файла в формате .xlsx
Для начала откройте созданный в Excel файл, который вы хотите сохранить без запроса подтверждения. После этого выберите вкладку «Файл» в левом верхнем углу и затем выберите «Сохранить как».
В выпадающем списке «Тип» выберите формат «Книга Excel» и выберите местоположение сохранения для файла. В этом окне нажмите кнопку «Сохранить».
2. Отключение запроса подтверждения для сохранения файла
Если вы хотите отключить запрос подтверждения каждый раз, когда сохраняете файл в Excel, перейдите во вкладку «Файл» в левом верхнем углу и выберите «Параметры».
В меню «Общие» найдите «Подтверждать сохранение при перезаписи». Снимите этот флажок, чтобы отключить запрос подтверждения при сохранении файла. Нажмите «ОК», чтобы сохранить изменения.
3. Использование макросов в VBA
Вы можете также использовать макросы в VBA для автоматизации процесса сохранения. Например, вы можете написать макрос, который каждый раз сохраняет файл в определенном местоположении и с определенным именем. Этот макрос можно вызвать сочетанием клавиш или кнопкой на листе Excel.
Для создания макроса перейдите во вкладку «Разработчик», нажмите «Visual Basic» и перейдите в редактор VBA. В редакторе создайте новый модуль, скопируйте и вставьте следующий код:
Сохраните свой макрос и назначьте ему соответствующую клавишу или кнопку на листе Excel. Теперь каждый раз, когда вы нажмете эту клавишу или кнопку, файл будет сохранен без запроса подтверждения.
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
FileName | Необязательный | Variant | Строка, указывающая имя сохраняемого файла. Можно включить полный путь; В противном случае Microsoft Excel сохранит файл в текущей папке. |
FileFormat | Необязательный | Variant | Формат файла, используемый при сохранении файла. Список допустимых вариантов см. в перечислении XlFileFormat . Для существующего файла форматом по умолчанию является последний указанный формат файла; Для нового файла по умолчанию используется формат используемой версии Excel. |
Password | Необязательный | Variant | Строка с учетом регистра (не более 15 символов), указывающая пароль защиты, который будет присвоен файлу. |
WriteResPassword | Необязательный | Variant | Строка, указывающая пароль резервирования записи для этого файла. Если файл сохраняется с паролем и пароль не предоставляется при открытии файла, он открывается только для чтения. |
ReadOnlyRecommended | Необязательный | Variant | Значение true для отображения сообщения при открытии файла, в котором рекомендуется открыть файл только для чтения. |
CreateBackup | Необязательный | Variant | Значение True для создания файла резервной копии. |
AccessMode | Необязательный | XlSaveAsAccessMode | Режим доступа к книге. |
ConflictResolution | Необязательный | XlSaveConflictResolution | Значение XlSaveConflictResolution , определяющее, как метод разрешает конфликт при сохранении книги. Если задано значение xlUserResolution, отображается диалоговое окно разрешения конфликтов.Если задано значение xlLocalSessionChanges, изменения локального пользователя принимаются автоматически.Если задано значение xlOtherSessionChanges, изменения из других сеансов автоматически принимаются вместо изменений локального пользователя.Если этот аргумент опущен, отобразится диалоговое окно разрешения конфликтов. |
AddToMru | Необязательный | Variant | Значение true , чтобы добавить эту книгу в список недавно использовавшихся файлов. Значение по умолчанию — False. |
TextCodepage | Необязательный | Variant | Игнорируется для всех языков в Microsoft Excel.ПРИМЕЧАНИЕ. Когда Excel сохраняет книгу в одном из форматов CSV или текста, указанных с помощью параметра FileFormat , он использует кодовую страницу, соответствующую языку системного языкового стандарта, используемого на текущем компьютере. Этот системный параметр доступен на вкладке панель управления>Регион и расположение языка> в разделе Текущее расположение. |
TextVisualLayout | Необязательный | Variant | Игнорируется для всех языков в Microsoft Excel.ПРИМЕЧАНИЕ. Когда Excel сохраняет книгу в одном из форматов CSV или текста, указанных с помощью параметра FileFormat , эти форматы сохраняются в логическом макете. Если текст слева направо (LTR) внедрен в текст справа налево (RTL) в файле или наоборот, логическая разметка сохраняет содержимое файла в правильном порядке чтения для всех языков в файле без учета направления. Когда приложение открывает файл, каждый запуск символов LTR или RTL отображается в правильном направлении в соответствии с диапазонами значений символов на кодовой странице (если только приложение, предназначенное для отображения точного макета памяти файла, например отладчик или редактор, не используется для открытия файла). |
Local | Необязательный | Variant | Значение True сохраняет файлы на языке Microsoft Excel (включая параметры панели управления). Значение False (по умолчанию) сохраняет файлы на языке Visual Basic для приложений (VBA) (как правило, на английском языке США, если проект VBA, из которого выполняется Workbooks.Open, не является старым проектом VBA с интернационализацией XL5/95). |
Properties and functions
FileDialog properties
Property | Description |
---|---|
AllowMultiSelect | Allow to select more than one file or folder |
ButtonName | Text displayed on the action button of a file dialog box |
DialogType | Change the MsoFileDialogType (see above) |
Filter | Set a file filter to filter file types user can select |
InitialFileName | The initial path to be opened e.g. C:\ |
InitialView | The initial file view. Can be one of the following:
|
SelectedItems | Collection of type FileDialogSelectedItems with all selected items |
Title | Title of the Open file dialog window |
Использование метода SaveAs
В Visual Basic for Applications (VBA) Excel существует специальный метод , который позволяет сохранить файл без подтверждения. Этот метод имеет несколько параметров, позволяющих настроить процесс сохранения.
Ниже приведена таблица, в которой описаны наиболее часто используемые параметры метода :
Параметр | Описание |
---|---|
FileName | Строка, определяющая новое имя и путь сохраняемого файла. Например, . |
FileFormat | Число или константа, определяющая формат файла сохранения. Например, для сохранения в формате XLSX. |
Password | Строка, определяющая пароль для защиты файла. Например, . |
WriteResPassword | Строка, определяющая пароль для защиты записи файла. Например, . |
ReadOnlyRecommended | Булево значение, указывающее, рекомендовать ли открывать файл только для чтения. — рекомендуется, — нет. |
Пример использования метода для сохранения файла с определенными параметрами:
Sub SaveWorkbook() Dim wb As Workbook Dim filePath As String ' Указываем путь и имя файла для сохранения filePath = "C:\МойФайл.xlsx" ' Открываем активную книгу Set wb = ActiveWorkbook ' Сохраняем файл без подтверждения wb.SaveAs FileName:=filePath, FileFormat:=xlOpenXMLWorkbook ' Закрываем книгу wb.Close ' Освобождаем память Set wb = Nothing End Sub
Этот пример сохранит активную книгу Excel в формате XLSX по указанному пути и имени файла () без подтверждения. Параметр указывает на формат XLSX.
Используя метод , вы можете гибко настроить процесс сохранения файлов в VBA Excel и избежать лишних диалоговых окон.
Шаги для настройки сохранения с помощью VBA
Шаг 1: Открыть новую книгу Excel
Первым шагом для настройки сохранения с помощью VBA является открытие новой книги Excel. Сделать это легко — просто запустите программу Excel на вашем компьютере и выберите «Новый документ».
Шаг 2: Открыть редактор VBA
Чтобы начать использовать VBA, вам необходимо открыть редактор VBA. Это можно сделать, выбрав «Разработчик» на панели меню, а затем нажав кнопку «Visual Basic».
Шаг 3: Написать код VBA для сохранения файла
Чтобы сохранять файлы без подтверждения, вам необходимо написать код VBA. Код может выглядеть так:
- Application.DisplayAlerts = False
- ActiveWorkbook.SaveAs Filename:=»C:FilepathFilename.xlsx», FileFormat:=51
- Application.DisplayAlerts = True
Первая строка кода отключает запрос подтверждения сохранения, вторая строка сохраняет файл в указанном месте и формате, а третья строка снова включает запрос подтверждения сохранения.
Шаг 4: Разместить код в модуле VBA
После написания кода его необходимо разместить в модуле VBA, к которому вы можете обратиться в будущем. Чтобы создать новый модуль, щелкните правой кнопкой мыши на экране редактора и выберите «Модуль» в меню.
Шаг 5: Сохранить и закрыть редактор VBA
Завершая настройку сохранения с помощью VBA, не забудьте сохранить модуль, который вы только что создали, и закрыть редактор VBA. Теперь вы можете сохранять файлы в Excel, не получая запросов на подтверждение.
Примеры доступа к книге
Мы рассмотрели все способы доступа к книге. Следующий код показывает примеры этих способов.
Sub PrimerDostupaKKnige() ' Это рабочая книга, которая уже открыта и называется МойVBA.xlsm. Debug.Print Workbooks("МойVBA.xlsm").FullName ' Рабочая книга, содержащая этот код Debug.Print ThisWorkbook.FullName ' Открытая рабочая книга, которая была открыта первой Debug.Print Workbooks(1).FullName ' Открытая рабочая книга, которая была открыта последней Debug.Print Workbooks(Workbooks.Count).FullName ' Рабочая книга, которая в настоящее время активна Debug.Print ActiveWorkbook.FullName ' Рабочая книга не указана - будет использована активная Debug.Print Worksheets("Лист1").Name ' Закрытая рабочая книга с именем Книга1.xlsm в папке 'C:\Документы Workbooks.Open ("C:\Документы\Книга1.xlsm") Debug.Print Workbooks("Книга1.xlsm").FullName Workbooks("Книга1.xlsm").Close End Sub
Как дать файлу уникальное имя при каждом сохранении?
При работе с Excel и VBA могут возникнуть ситуации, когда необходимо сохранить файл с уникальным именем каждый раз, к примеру, если вы регулярно обрабатываете данные и сохраняете их в файл.
Для того, чтобы задать файлу уникальное имя, можно воспользоваться функцией DateAndTime, которая возвращает текущую дату и время в заданном формате. Например:
- Format(Now(), «dd_mm_yyyy_hh_nn_ss») вернет текущую дату и время в формате dd_mm_yyyy_hh_nn_ss (например, 29_02_2024_12_45_30).
- Format(Now(), «yyyymmdd_hhnnss») вернет текущую дату и время в формате yyyymmdd_hhnnss (например, 20240229_124530).
Затем можно добавить полученную строку к имени файла, например:
Код | Описание |
---|---|
Dim fileName As String | Объявляем переменную для имени файла |
fileName = «Report_» & Format(Now(), «dd_mm_yyyy_hh_nn_ss») & «.xlsx» | Формируем имя файла в формате «Report_dd_mm_yyyy_hh_nn_ss.xlsx» |
ActiveWorkbook.SaveAs fileName | Сохраняем файл с заданным именем |
Таким образом, каждый раз при выполнении макроса будет создан файл с уникальным именем, состоящим из префикса «Report_», текущей даты и времени в заданном формате и расширения файла .xlsx.
Работа с данными в workbooks excel visual basic
Одним из основных инструментов работы с данными в workbooks Excel Visual Basic является объект Range. Объект Range представляет ячейки, диапазоны ячеек или таблицы в рабочей книге Excel. С его помощью вы можете прочитать значения ячеек, установить новые значения для ячеек или выполнить какие-либо операции с данными.
Для получения доступа к объекту Range вы можете использовать метод Worksheet.Range. Например, чтобы прочитать значение ячейки A1 на рабочем листе «Лист1», вы можете использовать следующий код:
Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets("Лист1") Dim value As Variant value = ws.Range("A1").Value
Таким образом, значение ячейки A1 будет присвоено переменной value.
Кроме того, с помощью объекта Range вы также можете осуществлять итерацию по ячейкам или диапазонам ячеек. Например, чтобы выполнить какие-либо операции с каждой ячейкой в диапазоне A1:B10, вы можете использовать следующий код:
Dim rng As Range Set rng = ws.Range("A1:B10") Dim cell As Range For Each cell In rng 'Выполнение операций с ячейкой Next cell
Этот код выполнит операции с каждой ячейкой в диапазоне A1:B10.
Кроме объекта Range, вы также можете использовать другие объекты и методы для работы с данными в workbooks Excel Visual Basic. Например, объекты ListObject и PivotTable предоставляют дополнительные функции для работы с таблицами и сводными таблицами.
Работа с данными в workbooks Excel Visual Basic предоставляет широкие возможности для автоматизации и обработки данных. Зная основные инструменты и методы, вы сможете эффективно работать с данными в Excel и повысить продуктивность своей работы.
Использование диалогового окна «Файл» для открытия рабочей книги
В предыдущем разделе показано, как открыть книгу с заданным именем. Иногда вам может понадобиться, чтобы пользователь выбрал рабочую книгу. Вы можете легко использовать Windows File Dialog.
FileDialog настраивается, и вы можете использовать его так:
- Выберите файл.
- Выберите папку.
- Откройте файл.
- «Сохранить как» файл.
Если вы просто хотите, чтобы пользователь выбрал файл, вы можете использовать функцию GetOpenFilename.
Следующая функция открывает книгу с помощью диалога файлов.
Функция возвращает полное имя файла, если файл был выбран. Если пользователь
отменяет, он отображает сообщение и возвращает пустую строку.
Public Function UserSelectWorkbook() As String On Error Goto ErrorHandler Dim sWorkbookName As String Dim FD As FileDialog Set FD = Application.FileDialog(msoFileDialogFilePicker) ' Откройте диалоговое окно файла With FD ' Установить заголовок диалога .Title = "Please Select File" ' Добавить фильтр .Filters.Add "Excel Files", "*.xls;*.xlsx;*.xlsm" ' Разрешить выбор только одного файла .AllowMultiSelect = False ' Диалог дисплея .Show If .SelectedItems.Count > 0 Then UserSelectWorkbook = .SelectedItems(1) Else MsgBox "Selecting a file has been cancelled. " UserSelectWorkbook = "" End If End With ' Убирать Set FD = Nothing Done: Exit Function ErrorHandler: MsgBox "Error: " + Err.Description End Function
Когда вы вызываете эту функцию, вы должны проверить, отменяет ли пользователь диалог.
В следующем примере показано, как легко вызвать функцию UserSelectWorkbook и обработать случай отмены пользователя.
Public Sub TestViborPolz() Dim userBook As Workbook, sFilename As String ' Вызовите функцию UserSelectworkbook sFilename = UserSelectWorkbook() ' Если имя файла возвращается пустым, пользователь отменил If sFilename <> "" Then ' Откройте книгу и сделайте что-нибудь с ней Set userBook = Workbooks.Open(sFilename) End If End Sub
Вы можете настроить диалог, изменив Title, Filters и AllowMultiSelect в функции UserSelectWorkbook.
Как отключить запрос на сохранение при закрытии книги?
Каждый раз, когда вы закрываете файл Excel без сохранения, появляется запрос на сохранение, чтобы вы могли подтвердить, закрыть ли его без сохранения или нет, что может вас раздражать. Теперь я представляю вам несколько кодов VBA, чтобы вы могли отключить запрос на сохранение при закрытии книги.
- Повторное использование всего: добавляйте наиболее часто используемые или сложные формулы, диаграммы и другие объекты в избранное и быстро используйте их повторно в будущем.
- Более 20 текстовых функций: извлечение числа из текстовой строки; Извлечь или удалить часть текстов; Преобразование чисел и валют в английские слова.
- Инструменты объединения: несколько книг и листов в одну; Объединение нескольких ячеек/строк/столбцов без потери данных; Объединить повторяющиеся строки и суммировать.
- Инструменты разделения: разделение данных на несколько листов в зависимости от значения; Одна рабочая книга для нескольких файлов Excel, PDF или CSV; Один столбец в несколько столбцов.
- Вставить, пропуская скрытые/отфильтрованные строки; Подсчет и сумма по цвету фона; Массовая рассылка персонализированных электронных писем нескольким получателям.
- Суперфильтр: создавайте расширенные схемы фильтров и применяйте их к любым листам; Сортировка по неделям, дням, частоте и т. д.; Фильтр по полужирному шрифту, формулам, комментариям.
- Более 300 мощных функций; Работает с Office 2007-2019 и 365; Поддерживает все языки; Простое развертывание на вашем предприятии или в организации.
Отключить запрос на сохранение с кодом VBA в Excel
Потрясающе! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Сэкономьте 50 % своего времени и сократите количество кликов мышью каждый день!
Здесь я представляю два кода VBA, чтобы вы могли отключить запрос на сохранение. Один из них закроет Excel без сохранения, когда вы закроете книгу напрямую, а другой закроет Excel с сохранением последнего изменения, внесенного вами при закрытии книги.
VBA: закрыть без непосредственного сохранения.
Если вы хотите закрыть Excel с сохранением изменений, вы можете использовать этот код VBA.
VBA: закрыть с сохранением.
Примечание. Второй VBA не работает с новыми книгами, которые вы никогда раньше не сохраняли.
-
Точка вместо запятой в Excel
-
Как поставить одинарную кавычку в Excel
-
Как удалить текстовое поле в Word
-
Robotdemo exe вирус как удалить с компьютера
- ПО для управления камерой Canon
Метод Workbook.Close
Метод Workbook.Close можно использовать для закрытия соответствующего объекта рабочей книги.
Основной синтаксис Workbook.Close следующий:
Для целей приведенного выше заявления применимы следующие определения:
Поскольку выражение представляет объект Workbook, я упрощаю приведенный выше синтаксис до следующего:
Давайте начнем с более подробного рассмотрения трех параметров (SaveChanges, Filename и RouteWorkbook) выше. После рассмотрения этих аргументов я добавлю несколько дополнительных комментариев о методе Workbook.Close.
Параметры сохранения изменений
Вы используете параметр SaveChanges, чтобы указать, сохраняет ли Visual Basic для приложений изменения в книге (или нет), когда книга:
- Есть несохраненные изменения.
Оба этих условия должны быть выполнены, чтобы VBA учитывал SaveChanges. Другими словами, VBA игнорирует SaveChanges в следующих ситуациях:
Если в книге нет несохраненных изменений.
SaveChanges — необязательный аргумент. Обычно при работе с ним используются следующие значения:
Верно: закройте книгу и сохраните изменения.
Если вы опустите параметр SaveChanges и соответствующая книга содержит несохраненные изменения, Excel отобразит диалоговое окно. В этом диалоговом окне пользователю предлагается сохранить изменения или нет.
Несмотря на вышеизложенное, если вы хотите убедиться, что конкретная книга сохранена под определенным именем, и закрыть ее, вы можете сделать следующее:
Этот способ действий предлагается такими авторитетами, как автор Ричард Мэнсфилд (в Mastering VBA for Microsoft Office 2016). Некоторые из преимуществ использования метода SaveAs (по сравнению с параметром Filename) для этих целей заключаются в следующем:
- Гарантирует, что книга всегда сохраняется под указанным вами именем файла.
Параметр RouteWorkbook
Параметр RouteWorkbook связан с маршрутизацией книги. Вы можете использовать RouteWorkbook, чтобы указать, будет ли книга направляться следующему получателю или нет.
RouteWorkbook является необязательным.
Основные правила, которые Visual Basic для приложений использует для определения того, как работать с RouteWorkbook, следующие:
- Если нет необходимости отправлять книгу следующему получателю, VBA игнорирует RouteWorkbook.
Например, рабочую книгу не нужно перенаправлять, если (i) к ней не прикреплена маршрутная накладная или (ii) маршрутизация уже выполнена.
- True: VBA направляет книгу следующему получателю.
Метод Workbook.Close и макросы Auto_Close
Макросы Auto_Close не выполняются, когда вы закрываете книгу из VBA
Это важно, если ваша рабочая книга использует макросы Auto_Close (вместо события BeforeClose) для автоматического запуска макроса перед закрытием рабочей книги. Метод Workbook.Close инициирует событие BeforeClose
Метод Workbook.Close и надстройки
Обычно вы устанавливаете и удаляете надстройки через диалоговое окно надстроек.
Вы также можете открывать и закрывать надстройки. Другими словами, теоретически вы можете применить метод Workbook.Close к надстройке.
Как следствие вышеизложенного, если вы получили доступ к надстройке как к книге (а не через диалоговое окно «Надстройки»), вы можете закрыть ее с помощью метода Close. Однако, как правило, это не самый подходящий способ работы с надстройками.
Причина этого объясняется экспертами в области Excel Диком Куслейкой и Майком Александром в Power Programming with VBA в Excel 2016 следующим образом:
Поэтому, как правило, используйте свойство AddIn.Installed для установки и удаления надстроек.
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 закрытии книг поступает добавьте перед «EndGlenЗначит надо объединить можно так: FullFilePath, True, «Свод_реестров» пыталась открыть файл нужное не увенчались
Workbooks.CloseПочему нельзя Unload кнопки на форме
planetaexcel.ru>
Макрос закрытия книги без сохранения
что при событии к строковым переменнымActiveWorkbook.Close True так: кликом сохранялся файлWorkbooks.Close не работает (vadim Set_windows.Hide End Subпри результат???Но ведь в
Клозе, ну сделал oWorkbook As Excel.Workbook CreateObject(“Excel.Application”) ‘создать объект regional settings, а vbHide Else: MsgBoxРазместите этот код открытия файла изВы пытаетесь прицепитьEnd IfSub TestClose() и закрывался Excel?
End SubЮрий М
: ActiveWindow.Close закрытии все настройки
oExcel.Worksheets(“Лист1”).Range(“a1”).Font.Size = 14 Ворде в том так Dim Количество_найденного_текста As Microsoft Excelзатем делаю
вот как бы “Excel не может в модуле книги, некоторой папки, переписываются
значение типа Integer,End SubApplication.Run “ВосстановитьИнтерфейс”Юрий МKSV
: Вы, если спрашиваете,При закрытии книги сохраняются, при открытииBusine2009
скрипте который ятак как не
Long Set oExcel что хочу программно? закрыться, наверное вы (обычно с названием модули в VBA возвращаемое функциейopenid.mail.ru/mail/vlad3622340Application.Quit: Не это ищете:: все правильно то хоть читайте появляется окно “Сохранить снова этой формы:
представил не ругается, знаю как правильно, = CreateObject(“Excel.Application”) ‘создать………………..Ципихович Эндрю не сказали пожалуйста”, ЭтаКнига) в открытый файл.InStr(sName, ”&”)Андрей: Спасибо, Юрий, ещёActiveWorkbook.Close True
Workbooks(имя).Close true Или200?’200px’:”+(this.scrollHeight+5)+’px’);”>’ подавляет предупреждения Excel ответы. Ведь ясно изменения в файле?” с следующий раз-Ципихович Эндрю выполнается и есть приходится угадывать объект Microsoft Excel
хочу закрыть без: Вроде изучил этот 16: Cancel =
Option Explicit Private Модули предназначены для
planetaexcel.ru>