Сохранить лист в файл в vba excel

Как создать, удалить, скрыть и скопировать лист в excel?

Сохранение листов книги как отдельных файлов

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

Примеров подобного из реальной жизни можно привести массу. Например, файл-отчет с листами-филиалами нужно разделить на отдельные книги по листам, чтобы передать затем данные в каждый филиал и т.д.

Если делать эту процедуру вручную, то придется для каждого листа выполнить немаленькую цепочку действий (выбрать лист, правой кнопкой по ярлычку листа, выбрать Копировать, указать отдельный предварительно созданный пустой файл и т.д.) Гораздо проще использовать короткий макрос, автоматизирующий эти действия.

Способ 1. Простое разделение

Нажмите сочетание Alt+F11 или выберите в меню Сервис — Макрос — Редактор Visual Basic (Tools — Macro — Visual Basic Editor) , вставьте новый модуль через меню Insert — Module и скопируйте туда текст этого макроса:

Если теперь выйти из редактора Visual Basic и вернуться в Excel, а затем запустить наш макрос (Alt+F8), то все листы из текущей книги будут разбиты по отдельным новым созданным книгам.

Способ 2. Разделение с сохранением

При необходимости, можно созданные книги сразу же сохранять под именами листов. Для этого макрос придется немного изменить, добавив команду сохранения в цикл:

Этот макрос сохраняет новые книги-листы в ту же папку, где лежал исходный файл. При необходимости сохранения в другое место, замените wb.Path на свой путь в кавычках, например «D:Отчеты2012» и т.п.

Если нужно сохранять файлы не в стандартном формате книги Excel (xlsx), а в других (xls, xlsm, xlsb, txt и т.д.), то кроме очевидного изменения расширения на нужное, потребуется добавить еще и уточнение формата файла — параметр FileFormat:

Для основных типов файлов значения параметра FileFormat следующие:

  • XLSX = 51
  • XLSM = 52
  • XLSB = 50
  • XLS = 56
  • TXT = 42

Полный список всех вариантов можно посмотреть в справке MSDN.

Способ 3. Сохранение в новые книги только выделенных листов

Если вы хотите раскидать по файлам не все листы в вашей книге, а только некоторые, то макрос придется немного изменить. Выделите нужные вам листы в книге, удерживая на клавиатуре клавишу Ctrl или Shift и запустите приведенный ниже макрос:

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

Способ 4. Сохранение только выделенных листов в новый файл

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

Способ 6. Готовый макрос из надстройки PLEX

Если лень или нет времени внедрять все вышеописанное, то можно воспользоваться готовым макросом из моей надстройки PLEX:

Разделить каждый рабочий лист и сохранить как отдельные PDF-файлы

Если вы хотите разделить листы и сохранить их как файлы PDF вместо файлов Excel, вы можете использовать следующий код:

'Код, созданный Sumit Bansal из trumpexcel.com Sub SplitEachWorksheet () Dim FPath As String FPath = Application.ActiveWorkbook.Path Application.ScreenUpdating = False Application.DisplayAlerts = False For Each ws In ThisWorkbook.Sheets ws.Copy Application.ActiveSheet.ExportAsport Введите: = xlTypePDF, Имя файла: = FPath & "\" & ws.Name & ".xlsx" Application.ActiveWorkbook.Close False Next Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub

Перед использованием этого кода необходимо убедиться в следующем:

  1. Создайте папку, в которой вы хотите получить все полученные файлы.
  2. Сохраните основной файл Excel (в котором есть все нужные вам рабочие листы в виде отдельных файлов) в этой папке.

Приведенный выше код разделяет каждый лист в файле Excel и сохраняет его в формате PDF в той же папке, где вы сохранили основной файл Excel.

Как сохранить лист Excel в отдельный файл?

Для сохранения листа в отдельную книгу можно воспользоваться стандартными средствами Excel. Нажимаем правой кнопкой мыши по имени листа в нижней панели и выбираем Переместить/скопировать:

Далее перемещаем лист в новую книгу, сохраняем её и даем название файлу. Однако в случае большого количества листов, которые нужно сохранить, эта процедура может занять достаточно большое количество времени. Если предположить, что на сохранение каждого листа тратится по 30 секунд, то для книги из 20 листов мы уже потратим 10 минут. Поэтому, чтобы иметь возможность быстро сохранить листы в отдельные файлы воспользуемся возможностями VBA и напишем макрос для сохранения листов, который позволит производить эти действия за несколько секунд.

Разделите только те рабочие листы, которые содержат слово / фразу, в отдельные файлы Excel

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

Например, предположим, что у вас есть файл Excel, содержащий данные за несколько лет, и каждый лист в файле имеет номер года в качестве префикса. Что-то вроде показанного ниже:

Теперь предположим, что вы хотите разделить все листы на 2020 год и сохранить их как отдельные файлы Excel. Для этого вам нужно как-то проверить имя каждого рабочего листа, и только те листы, которые имеют номер 2020, должны быть разделены и сохранены, а остальные должны быть оставлены нетронутыми.

Это можно сделать с помощью следующего макроса VBA:

В приведенном выше коде я использовал переменную TexttoFind, которой изначально было присвоено значение «2020».

Затем код VBA использует цикл For Next в VBA для просмотра каждого рабочего листа, а затем проверяет имя каждой функции INSTR рабочего листа. Эта функция проверяет, есть ли в имени листа слово 2020 или нет. Если это так, он вернет номер позиции, в которой он нашел этот текст (в данном случае это 2020).

И если он не находит искомый текст, он возвращает 0.

Это используется с условием IF Then. Поэтому, если в имени листа есть текстовая строка 2020, оно будет разделено и сохранено как отдельный файл. И если у него нет этой текстовой строки, условие IF не будет выполнено, и ничего не произойдет.

В этой заметке поговорим о том, как переместить или скопировать лист рабочей книги Excel в другую книгу, а также о том как сохранить все листы книги отдельными файлами . Для чего это нужно? Да мало ли для чего! Кто-то отправляет файлы почтой и не хочет отсылать лишнюю информацию, содержащуюся на других листах своей рабочей книги. Кто-то собирает информацию у нескольких пользователей и для этого разделяет книгу на листы, раздает шаблоны для заполнения, а затем собирает все листы обратно в книгу, можно долго фантазировать, давайте перейдем к делу.

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

Макрос сохранения листа Excel в файл

Данный макрос позволяет упростить процедуру сохранения активного листа в книге Excel в отдельный файл.

Для использования этого макроса на любом листе в книге Excel создайте кнопку, и назначьте ей макрос СохранитьЛистВФайл.

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

Сохранение производится в формате XLS (формат Excel 2003) Если пользователь отказался от ввода имени файла (нажал клавишу ESC или кнопку «Отмена» в диалоговом окне), то сохранения листа в файл не происходит.

PS: Кто-то может сказать, что для сохранения листа в файл в объектной модели Excel есть метод SaveAs, применимый к объекту Worksheet.

Но, как ни странно, выполнение кода ActiveSheet.SaveAs » « приводит к сохранению книги целиком, что равносильно использованию кода ActiveWorkbook.SaveAs » «

Почему этот метод сохранения работает так нелогично — лично мне не понятно (видимо, Microsoft что-то там перемудрил)

150820 просмотров

Как сохранить листы Excel в отдельные файлы

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

  1. Откройте вкладку меню VBA-Excel
  2. Откройте меню Диспетчеры и выберите Диспетчер листов
  3. Выберите лист или несколько листов, которые хотите сохранить как отдельные файлы. Нажмите кнопку Сохранить листы как книги
  4. В открывшемся диалоговом окне Сохранение листов как отдельных книг выберите папку, в которую хотите сохранить файлы. Вы также можете выбрать три опции:
  5. При сохранении можно выбрать опцию Добавлять подкаталог с именем файла. В этом случае будет создана новая папка (подкаталог) для удобной навигации.
  6. Опция Указать дату изменения добавляет к имени папки дату сохранения файла. Таким образом вы можете удобно делать резервные копии листов с данными.
  7. Опция Разрывать связи с этой книгой в новых файлах необходима если нужно сохранить формулы как значения в том случае если они ссылаются на другие листы из файла.
  8. Нажмите кнопку Сохранить для завершения.

Простой метод — копировать листы руками.

Если вам нужно объединить всего пару файлов Excel, вы можете вручную скопировать или переместить листы из одного файла в другой. Вот как это можно сделать:

  1. Откройте книги, которые мы планируем объединить.
  2. Выберите листы в исходной книге, которые вы хотите скопировать в основную книгу.

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

  • Чтобы выбрать соседние листы, щелкните вкладку первого, который вы хотите скопировать, нажмите и удерживайте клавишу Shift, а затем щелкните вкладку последнего. Это действие выберет все листы между ними.
  • Чтобы выбрать несмежные, удерживайте клавишу Ctrl и щелкайте вкладку каждого из них по отдельности.
  • Выделив все нужные листы, щелкните правой кнопкой мыши любую из выделенных вкладок и выберите «Переместить» или «Копировать…» .

  1. В диалоговом окне «Перемещение или копирование» выполните следующие действия:
    • В раскрывающемся списке «Переместить выбранные листы в книгу» выберите целевую книгу, в которую вы хотите объединить другие файлы.
    • Укажите, где именно должны быть вставлены вкладки. В нашем случае мы выбираем вариант вставки в конец списка.
    • Установите флажок «Создать копию», если хотите, чтобы исходные данные оставались оригинальном файле.
    • Нажмите , чтобы завершить операцию.

Чтобы объединить вкладки из нескольких файлов Excel, повторите описанные выше шаги для каждой книги отдельно.

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

Save As – VBA

The VBA Save As command saves an Excel file as a new file, similar to clicking the Save As icon or using the Save As Shortcut (Alt > F > A).
Above, we identified all the ways to specify which workbook to save. You can use those exact same methods to identify workbooks when using Save As.

Save As behaves similarly to Save, except you also need to specify the name of the new file.
In fact, Save As has many potential variables to define:

SaveAs Syntax:

A full description of all of the SaveAs arguments is included below. For now we will focus on the most common examples.
Note: These arguments can be entered as string with parenthesis or as defined variables.

Создание новых листов

Создание новых рабочих листов осуществляется с помощью метода Sheets.Add.

Компоненты метода Sheets.Add

  • Before* — необязательный параметр типа данных Variant, указывающий на лист, перед которым будет добавлен новый.
  • After* — необязательный параметр типа данных Variant, указывающий на лист, после которого будет добавлен новый.
  • Count — необязательный параметр типа данных Variant, указывающий, сколько листов будет добавлено (по умолчанию — 1).
  • Type — необязательный параметр типа данных Variant, указывающий тип листа: xlWorksheet** (рабочий лист) или xlChart (диаграмма), по умолчанию — xlWorksheet.

*Если Before и After не указаны, новый лист, по умолчанию, будет добавлен перед активным листом.

**Для создания рабочего листа (xlWorksheet) можно использовать метод Worksheets.Add, который для создания диаграмм уже не подойдет.

Примеры создания листов

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

‘Создание рабочего листа:

Sheets.Add

Worksheets.Add

ThisWorkbook.Sheets.Add After=ActiveSheet,Count=2

Workbooks(«Книга1.xlsm»).Sheets.Add After=Лист1

Workbooks(«Книга1.xlsm»).Sheets.Add After=Worksheets(1)

Workbooks(«Книга1.xlsm»).Sheets.Add After=Worksheets(«Лист1»)

 
‘Создание нового листа с заданным именем:

Workbooks(«Книга1.xlsm»).Sheets.Add.Name=»Мой новый лист»

 
‘Создание диаграммы:

Sheets.Add Type=xlChart

 
‘Добавление нового листа перед
‘последним листом рабочей книги

Sheets.Add Before=Sheets(Sheets.Count)

 
‘Добавление нового листа в конец

Sheets.Add After=Sheets(Sheets.Count)

  • Лист1 в After:=Лист1 — это уникальное имя листа, указанное в проводнике редактора VBA без скобок.
  • Лист1 в After:=Worksheets(«Лист1») — это имя на ярлыке листа, указанное в проводнике редактора VBA в скобках.

Создаваемый лист можно присвоить объектной переменной:

1
2
3
4
5
6
7
8
9
10

DimmyList AsObject

‘В активной книге

SetmyList=Worksheets.Add

‘В книге «Книга1.xlsm»

SetmyList=Workbooks(«Книга1.xlsm»).Worksheets.Add

‘Работаем с переменной

myList.Name=»Listok1″

myList.Cells(1,1)=myList.Name

‘Очищаем переменную

SetmyList=Nothing

Если создаваемый лист присваивается объектной переменной, он будет помещен перед активным листом. Указать дополнительные параметры невозможно.

Решение

Спасибо! Это мой первый опыт в VBA. Не судите строго! Не подскажите, сложно ли сделать так, чтобы все выражения в скопированных листах были сохранены как значения?

Добавлено через 49 минут В коде ниже сохранять как значение, если использовать массивы не получается:

Вот это почти похоже на правду. То что удаляет все за областью печати — это не страшно. При сохранении можно указать путь и имя, и что сохраняет значения, а не формулы — это все то что надо. Только как бы немного доработать, чтобы сохранялся не выделенный лист, а к примеру так: на первом листе будут какие-то расчеты и кнопка сохранить, а таблицы с результатами на втором и третьем листе. И вот при нажатии на кнопку сохранить, сохранялись бы второй и третий листы в отдельной книге.

Добавлено через 2 часа 30 минут DanAttess, А можно увидеть файл с результатом сохранений?

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

Сохранение листа книги в файле — проблема с защитой листа и привязкой макросовС толкнулся с такой проблемой при сохранении листа в файле вот код который сохраняет лист в.

Как сохранить файл excel с кодировкой vba, не открывая его?

Вот код, всего два небольших изменения. У обоих новых наборов строк есть комментарий «Новый» перед ними.

Также просто немного подбирал процедуру обработки ошибок.

Как это работает следующим образом:

  1. Сохраните имя файла текущей книги в переменной файл «» strMasterWorkbookFilename

  2. формата PDF создается «экспорта» листа.

  3. Рабочий лист Excel затем сохраняется как XLSX. Это эффективно «закрывает» оригинальную книгу.

3.1 Кнопка («Кнопка 8») удаляется с нового рабочего листа XLSX, и рабочая книга сохраняется снова.

  1. Код затем повторно открывает оригинальную книгу (‘strMasterWorkbookFilename’) и закрывает текущую книгу.

Примечания — Сохранение, поскольку XLSX удалит код макроса из сохраненного файла. Макрос останется в главном «главном» файле.

Установите библиотеки для чтения и записи файлов Excel

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

Подготовка к дополнительной рабочей области: pip

Вот почему вам нужно установить pip и setuptools. Если у вас установлен Python2 ⩾ 2.7.9 или Python3  ⩾ 3.4, то можно не беспокоиться — просто убедитесь, что вы обновились до последней версии.

Для этого выполните следующую команду в своем терминале:

Если вы еще не установили pip, запустите скрипт python get-pip.py, который вы можете найти . Следуйте инструкциям по установке.

Установка Anaconda

Другой вариант для работы в data science — установить дистрибутив Anaconda Python. Сделав это, вы получите простой и быстрый способ начать заниматься data science, потому что вам не нужно беспокоиться об установке отдельных библиотек, необходимых для работы.

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

Anaconda включает в себя 100 самых популярных библиотек Python, R и Scala для науки о данных и несколько сред разработки с открытым исходным кодом, таких как Jupyter и Spyder.

Установить Anaconda можно здесь. Следуйте инструкциям по установке, и вы готовы начать!

Save Workbook – VBA

The VBA Save command saves an Excel file similarly to clicking the Save icon or using the Save Shortcut (CTRL + S).

Save the Active Workbook

Note: This is the current active workbook from with in the VBA code, which is different from ThisWorkbook which contains the running code.

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro – A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!

Note: opening a workbook in ReadOnly mode prevents the file from being saved.
To save the file you will need to use Save As and save the file with a different name.

Save a workbook based on a cell value

This will save a workbook that’s name is found in a cell value.

Save As – VBA

The VBA Save As command saves an Excel file as a new file, similar to clicking the Save As icon or using the Save As Shortcut (Alt > F > A).
Above, we identified all the ways to specify which workbook to save. You can use those exact same methods to identify workbooks when using Save As.

Save As behaves similarly to Save, except you also need to specify the name of the new file.
In fact, Save As has many potential variables to define:

SaveAs Syntax:

A full description of all of the SaveAs arguments is included below. For now we will focus on the most common examples.
Note: These arguments can be entered as string with parenthesis or as defined variables.

TRUE to display a message box, recommending that the file is opened read-only.

Other Save As Examples

Create Save As Dialog Box

This Generates the Save As Dialog Box, prompting the user to Save the file.
Keep in mind that this simple code may not be appropriate in all cases.

Disable Save Alerts

As you work with saving in VBA, you may come across various Save Warnings or Prompts. To disable warnings, add this line of code:

and to re-able alerts:

Защита книги в Microsoft Excel

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

  1. В том же меню «Защита» выберите пункт «Защитить книгу».

  2. В появившемся окне введите пароль и решите, нужно защитить структуру или окна. Подтвердите свое действие нажатием на «ОК».

  3. Как и в прошлые разы, введенный пароль придется подтвердить, чтобы вы точно убедились в правильности его ввода.

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

Разделить каждый лист на отдельный файл Excel

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

Чтобы разделить эти листы в отдельный файл Excel, вы можете использовать приведенный ниже код VBA:

Перед использованием приведенного выше кода VBA необходимо убедиться в нескольких вещах:

  • Создайте папку, в которой вы хотите получить все полученные файлы.
  • Сохраните основной файл Excel (в котором есть все нужные вам рабочие листы в виде отдельных файлов) в этой папке.

Как только вы это сделаете, вы можете поместить указанный выше код VBA в файл и запустить его.

Приведенный выше код написан таким образом, что он выбирает местоположение папки, используя путь к файлу (в котором выполняется код)

Вот почему важно сначала сохранить файл в папке, а затем использовать этот код

Как работает код VBA. В приведенном выше коде используется простой цикл For Next, который проходит через каждый рабочий лист, создает копию рабочего листа в книге Excel, а затем сохраняет эту книгу Excel в указанной папке (которая совпадает с основной файл со всеми листами).

Ниже приведены шаги по размещению этого кода VBA в книге Excel (они будут такими же для всех других методов, показанных в этом руководстве):

Куда поставить этот код?

Ниже приведены шаги по размещению кода в редакторе Visual Basic, где он может быть выполнен:

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

Имя каждого сохраненного файла совпадает с именем листа в основном файле.

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

Обратите внимание, что я использовал в коде строки Application.ScreenUpdating = False и Application.DisplayAlerts = False, чтобы все происходило в серверной части и не видеть, что происходит на вашем экране. Как только код запускается, разделяет листы и сохраняет их, мы возвращаем им значение ИСТИНА

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

Сохранение файла Excel с названием из ячейки — без привязки к ячейке

Теперь давайте представим, что заранее мы не можем определить, какая именно ячейка будет формировать название файла (может B14, а может и нет), поэтому мы можем немного скорректировать алгоритм таким образом, чтобы он брал значение из ячейки, которая является активной, но в этом случае Вы, конечно же, предварительно, должны выбрать ее (т.е. встать на нее).

Замените код процедуры следующим кодом, который совсем немного, но изменен.

Проверяем работу, становимся на нужную ячейку, и запускаем макрос (в процедуре я добавил проверку, если выбрана пустая ячейка, возникнет ошибка).

Как видим, все отработало.

Как файл из Эксель сохранить в ПДФ: 4 основных способа

Способов, как сохранить Эксель в ПДФ, так много, что воспользоваться ими может и владелец компьютера с современным программным обеспечением, и пользователь старого ПК, на котором даже нет пакета MS Office.

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

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

Конвертация в программе Excel

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

Макрос Excel для копирования листа и переименования

Когда вы копируете лист в Excel, реплике присваивается имя в формате по умолчанию, например Лист1 (2). Следующие макросы могут избавить вас от необходимости вручную изменять имя по умолчанию.

Этот код дублирует активный лист, называет копию «Тестовый лист» (вы можете заменить его любым другим именем) и помещает скопированный лист в конец текущей книги.

Public Sub CopySheetAndRenamePredefined() activeSheet.Copy After:=Worksheets(Sheets.Count) При ошибке Возобновить Далее activeSheet.Name = «Test Sheet» End Sub

Чтобы позволить пользователю указать имя для скопированного листа, используйте этот код:

Public Sub CopySheetAndRename() Dim newName As String On Error Resume Next newName = InputBox(«Введите имя скопированного рабочего листа») If newName «» Then activeSheet.Copy After:=Worksheets(Sheets.Count) On Error Resume Next activeSheet.Name = newName End If End Sub

После запуска макрос отображает следующее поле ввода, в котором вы вводите желаемое имя и нажимаете OK:

Как сохранить листы отдельными файлами при помощи надстройки?

Второй способ перемещения листов в отдельные книги — прибегнуть к помощи макроса (надстройки). Если специфика Вашей деятельности связана с тем, что Вам приходится часто расшивать рабочие книги на отдельные листы, то есть выделять листы из книги и создавать из этих листов отдельные файлы, то полезным было бы иметь такую надстройку в арсенале своих инструментов. Макрос начинает работать после нажатия кнопки, расположенной на панели инструментов и вызывает диалоговое окно, в котором пользователь имеет возможность задать папку, в которую будут сохранены раскрепленные листы, а также выбрать ряд других опций.

Использование надстройки позволяет:

1. Вызывать диалоговое окно надстройки одним кликом мыши прямо из вкладки на ленте;

2. выбирать папку, в которую будут сохраняться рабочие книги;

3. при делении рабочей книги на отдельные файлы назвать новые файлы именами листов;

4. при сохранении листов отдельными файлами назвать их составными именами, состоящими из имени исходной рабочей книги и имени листа;

5. создавать уникальные имена файлов, добавляя текущую дату и время к именам файлов;

6. выбирать наиболее подходящее расширение (тип) для новых рабочих книг.

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

  • Как удалить вирус с компьютера

      

  • В телефоне не отображаются картинки в браузере андроид

      

  • Ведомость по взаиморасчетам с контрагентами 1с упп

      

  • Как анимировать цифры в after effects

      

  • Как записать несколько дорожек в fl studio

Разделите только те рабочие листы, которые содержат слово / фразу, в отдельные файлы Excel

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

Например, предположим, что у вас есть файл Excel, содержащий данные за несколько лет, и каждый лист в файле имеет номер года в качестве префикса. Что-то вроде того, что показано ниже:

Теперь предположим, что вы хотите разделить все листы на период с 21 по 2022 год и сохранить их в виде отдельных файлов Excel. Для этого вам нужно как-то проверить имя каждого рабочего листа, и только те листы, которые имеют номер 2021-2022, должны быть разделены и сохранены, а остальные должны быть оставлены нетронутыми.

Это можно сделать с помощью следующего макроса VBA:

'Код, созданный Sumit Bansal из trumpexcel.com Sub SplitEachWorksheet () Dim FPath As String Dim TexttoFind As String TexttoFind = "2020" FPath = Application.ActiveWorkbook.Path Application.ScreenUpdating = False Application.DisplayAlerts = False For Each ws In ThisWorkbook. Таблицы Если InStr (1, ws.Name, TexttoFind, vbBinaryCompare) 0 Тогда ws.Copy Application.ActiveWorkbook.SaveAs Имя файла: = FPath & "\" & ws.Name & ".xlsx" Application.ActiveWorkbook.Close False End If Next Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub

В приведенном выше коде я использовал переменную TexttoFind, которой изначально было присвоено значение «2020».

Затем код VBA использует цикл For Next в VBA для просмотра каждого рабочего листа, а затем проверяет имя каждой функции INSTR рабочего листа. Эта функция проверяет, есть ли в имени листа слово2021-2022 или нет. Если это так, он вернет номер позиции, в которой он нашел этот текст (в данном случае это 2021-2022 годы).

И если он не находит искомый текст, он возвращает 0.

Это используется с условием IF Then. Поэтому, если имя листа содержит текстовую строку 2021-2022, оно будет разделено и сохранено как отдельный файл. И если у него нет этой текстовой строки, условие IF не будет выполнено, и ничего не произойдет.

Как объединить файлы Excel с VBA

Если у вас есть несколько файлов Excel, которые необходимо объединить в один файл, более быстрым способом будет автоматизировать процесс с помощью макроса VBA.

Ниже вы найдете код VBA, который копирует все листы из всех файлов Excel, которые вы выбираете, в одну книгу. Этот макрос MergeExcelFiles написан Алексом.

Важное замечание! Макрос работает со следующим ограничением — объединяемые файлы не должны быть открыты физически или находиться в памяти, в буфере обмена. В таком случае вы получите ошибку во время выполнения

Как добавить этот макрос в книгу

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

  1. нажимать, чтобы открыть редактор Visual Basic.
  2. Щелкните правой кнопкой мыши ThisWorkbook на левой панели и выберите « Вставить» > « Модуль» в контекстном меню.
  3. В появившемся окне (Окно кода) вставьте указанный выше код.

Более подробная инструкция описана в разделе  .

Кроме того, вы можете загрузить макрос в файле Excel, открыть его в этой книге (включить выполнение макросов, если будет предложено), а затем переключиться на свою собственную книгу и нажать для его запуска. Если вы новичок в использовании макросов в Excel, следуйте подробным инструкциям ниже.

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

Откройте файл Excel, в котором вы хотите объединить листы из других книг, и выполните следующие действия:

  1. Нажмите комбинацию , чтобы открыть окно диалога.
  2. В разделе « Имя макроса выберите MergeExcelFiles и нажмите «Выполнить.
  1. Откроется стандартное окно проводника, вы выберите одну или несколько книг, которые хотите объединить, и нажмите «Открыть» . Чтобы выбрать несколько файлов , удерживайте нажатой клавишу Ctrl, указывая на их имена.

В зависимости от того, сколько файлов вы выбрали, дайте макросу несколько секунд или минут для их обработки. После завершения всех операций он сообщит вам, сколько файлов было обработано и сколько листов было объединено:

Понравилась статья? Поделиться с друзьями:
Самоучитель Брин Гвелл
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: