Разделить книгу по листам - Советы по Excel

Содержание

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

Смотреть видео

  • Joe + Others ищет способ сохранить каждый лист в отдельный файл.
  • Полезно для Power Query или после использования Показать страницы фильтров отчетов

Стенограмма видео

Изучение Excel из подкаста, серия 2107 - Разделите каждый рабочий лист на новую книгу

Привет, добро пожаловать обратно. Я и netcast. Я Билл Джелен.

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

Совсем недавно в эпизоде ​​2106, где мы создавали PDF-файл из всех комбинаций слайсеров. Позже в этом эпизоде ​​я показал альтернативный метод, в котором мы создаем множество сводных отчетов, но он помещает их все в одну рабочую книгу, и я получил электронное письмо от Джо из Калифорнии, в котором говорится: хорошо, послушайте, мне нужно отправить каждый рабочий лист другому клиенту, и То же самое, на моих живых семинарах Power Excel, где я показываю этот трюк, люди говорят: ну нет, мы не хотим, чтобы все это было в одной Рабочей книге, мы хотим, чтобы это было отдельно, и тогда, вероятно, даже более важно, чем это, снова в эпизод 2077, где я говорил о том, что Power Query теперь может объединять все файлы Excel в папке, верно? И это чудо. Отлично работает. Если у вас было 400 файлов Excel, каждый с одним листом, он возьмет все эти данные со всех этих листов и поместит их в одну сетку.Это здорово, но если бы у нас была почти такая же проблема. Одна рабочая тетрадь с 400 листами? Он не может этого сделать, верно. Он не может с этим справиться - пока. Итак, прямо сейчас, 1 июля 2017 года, он не может с этим справиться. Может быть, через полгода он справится с этим, но сейчас это должны быть рабочие тетради на одном листе.

Итак, нам нужен способ разбить вещи на отдельные файлы. Хорошо, давайте просто настроим это. У нас есть Рабочая книга, которую я написал в 2106 году, где у нас есть данные, а затем исходная сводная таблица, и мы переходим в Анализ, Параметры, Показать страницы фильтров отчета и показываем страницы ключа, и это создает для меня целую кучу разных Рабочих листов и Я хочу взять эти рабочие листы и создать каждый из них в виде отдельного файла, но даже если он у нас есть, есть такие вещи, как Sheet2 и Data, которые я не хочу разделять.

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

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

Хорошо, а затем еще раз, чтобы сделать это как можно более общим, у меня здесь есть несколько именованных диапазонов, мой путь, мой префикс, мой суффикс, мой тип и моя вставка. Хорошо, теперь вы выясняете, куда вы хотите, чтобы все это ушло. c: Reports . Я хочу, чтобы у каждого файла было имя листа, но перед именем листа я поставлю префикс WB, суффикс файла и ничего, и тогда у вас будет выбор: PDF или XLSX.

Итак, мы собираемся начать с XLSX, мы поговорим об этих значениях вставки, прежде чем сохранять их позже. Хорошо, а сейчас это первая версия от 1 июля 2017 года. Если мы улучшим это, я просто заменю его на веб-странице, и вы можете найти веб-страницу там, в описаниях YouTube. Хорошо, вот как это будет работать. Это файл XLSM. Поэтому вы должны убедиться, что макросы разрешены. alt = "" T, M, S, для безопасности вы должны быть как минимум на этом уровне или ниже. Право, если вы наверху, вам нужно изменить, закройте Рабочую книгу, снова откройте. Когда вы открываете Рабочую книгу, она говорит: `` Эй, вы готовы принять здесь макросы, и это совсем не большой макрос: шестьдесят восемь строк кода, и многие из них просто связаны с получением значений из меню '' Лист,какие переменные сейчас.

Но здесь важно то, что он будет работать с ActiveWorkbook. Итак, вы собираетесь переключиться на рабочую книгу, в которой есть данные, а затем нажмите CTRL SHIFT S, чтобы запустить ее, и она обнаружит ActiveWorkbook, и она будет той, которую он разделяет. Он захватывает («MyPath»), и это просто потому, что я всегда забываю поставить обратную косую черту, если последний символ не является обратной косой чертой, то я собираюсь добавить обратную косую черту, а затем вот настоящая работа.

Для каждого рабочего листа в оригинале в активном WBO.Worksheets мы собираемся проверить, есть ли он там и в столбце B. Если это, если это не так, мы собираемся экспортировать этот лист, и я люблю эту строку кода. WS.copy говорит, что когда я беру эту рабочую книгу, этот рабочий лист, из этой большой рабочей книги, вы знаете 20 или 400 рабочих листов, и мы переходим к WS.copy, который делает копию и перемещает ее в новую рабочую книгу. и мы знаем, мы знаем, что эта новая рабочая книга теперь станет активной рабочей книгой в макросе, и, конечно же, в этой рабочей книге только один лист, и этот лист является активным.

Итак, вот здесь я могу определить название Рабочей тетради. Установите его, «Применить к этой переменной объекта», «Новая рабочая книга», «Новый рабочий лист», а затем, когда мне нужно будет закрыть, я могу выполнить WBN.close после завершения работы. Мы вычисляем новое имя файла, используя все переменные. Удалите этот файл, если он уже существует, а затем, если это файл Excel, мы сохраняем его как PDF-файл.

И, кстати, этот PDF-код работает только в Windows, извините, если вы работаете на Mac, вам придется пойти куда-нибудь еще, чтобы выяснить эквивалентный код Mac. У меня нет Mac. Я знаю, что есть способ сохранить PDF-файл на Mac. Я знаю, что код другой. Вам нужно будет выяснить это или вернуться к настоящему Excel в Windows, и тогда мы закончили, мы закрылись.

Хорошо, это просто небольшой макрос вроде этого, переключитесь на нашу книгу данных, ту, в которой есть все рабочие листы. Здесь 20 разных рабочих листов, плюс два, которые я не хочу делать, а затем CTRL SHIFT S вот так, и мы посмотрим, как он мигает, создавая каждый из них. Вот и мы: создан 21 файл.

Давайте посмотрим в проводнике Windows, и вот мои отчеты ОС (C :), которые он создал для каждого рабочего листа, названного в исходной рабочей книге, он создал новую версию с WB впереди. Хорошо, Джо, когда Джо отправил мне эту записку, он сказал, что собирается отправить эти данные клиентам, и я сначала запаниковал, потому что сказал, подожди второй, Джо, у нас будут проблемы, потому что ты собираешься отправить Гэри его данные, верно? Но это, ну, вы знаете, живой, живой набор данных, это живая сводная таблица. Все здесь, вы могли бы получить всю информацию для других клиентов, не так ли? Парень, вы же не хотите посылать клиенту А информацию для всех остальных клиентов. Это могло быть проблемой, и на самом деле, когда я перечитал заметку о шоу, он был умнее меня, потому что сказал:Я хочу создать их в виде файлов PDF. Я подумал, хорошо, тогда да, нам не нужно беспокоиться о файлах PDF, это нормально, но то, что я добавил здесь, в макрос, было возможностью сказать «Вставить значения перед сохранением»? ПРАВДА.

Таким образом, вы устанавливаете это равным TRUE, и здесь будет задействован этот крошечный фрагмент кода, где мы говорим, If PasteV Then the UsedRange.Copy, а затем UsedRange.PasteSpecial (xlPasteValues), UsedRange, вместо того, чтобы копировать и вставлять все 17 миллиардов ячеек. , это ограничит его хорошо, UsedRange.

Хорошо, давайте вернемся назад, переключим тот рабочий лист, в котором есть данные, CTRL SHIFT S для разделения, а затем эту новую версию в каталоге отчетов, вы увидите, что она избавилась от сводной таблицы и оставила там только данные. Таким образом, они не могут получить все данные.

Alright, we'll try the other feature. We'll try if we switch from Excel to PDF change the prefix to PDFFileOf, whatever we want there. I won't even try the suffix, something. Alright and then switch to the data, CTRL SHIFT S. Alrighty, so we get the same files PDFFileOf the Worksheet name, something of PDF and we should have just nice little PDFs in there, like that.

Alright so there you have it the.com Worksheet Splitter. Hopefully generic enough, for whatever you need. Download it again from the link there in the YouTube comments. To learn more about VBA, check out this book Excel 2016 VBA and Macros by myself and Tracy ?08:50.640. Click that I on the top right hand corner, to read more about the book.

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

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

Скачать файл

Загрузите образец файла здесь: Podcast2107.xlsm

Интересные статьи...