Разделить каждый лист Excel на отдельные файлы (шаг за шагом)

Я пытаюсь разделить рабочий лист на 2 листа каждый с именами Scrap Yard, Faircrest и Harrison. Я тоже хотел бы знать, как это сделать, пожалуйста.


Когда я скопировал ваш VBA для разделения рабочего листа, я получил сообщение об ошибке в первой строке. Sub SplitEachWorksheet () — это hsow в имени поля макроса как Sheet2.SplitEachWorkbook. VBA не запускается. Что я делаю не так?

Sub SplitEachWorksheet ()
Dim FPath As String
Dim TexttoFind As String
TexttoFind = «Scrap Yard»
FPath = Application.ActiveWorkbook.Path
Application.ScreenUpdating = False
Application.DisplayAlerts = False

Для каждого ws в ThisWorkbook.Sheets
Если 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


Если я скопирую код в ЛИЧНУЮ книгу макросов, он не работает. Мне нужно скопировать код на конкретный лист книги и выполнить. Почему? Можете ли вы предоставить макрос, который работает независимо?


Большое спасибо, братан!


Какой будет код для выбора 2 лист, а затем создайте новый файл


, он работает только для первой вкладки, затем появляется erorr



Как можно «разбить» файл Excel (.xlsx), содержащий несколько листов, на отдельный лист [n] .xlsx?

Думаю, название говорит само за себя, но для уточнения немного дальше:

У меня есть файл .xlsx, который содержит несколько десятков листов. Я хочу вывести все эти листы в виде отдельных файлов .xlsx. Автоматическое именование их не требуется. Есть ли в Excel функция экспорта листов в отдельный файл?


Это не встроенная функция.

Однако, если вы запустите этот код должен выполнить свою работу.

  Sub SaveSheets () Dim strPath As String Dim ws As Worksheet Application.ScreenUpdating = False strPath = ActiveWorkbook.Path & "" Для  Каждый ws In ThisWorkbook.Sheets ws.Copy 'Используйте эту строку, если хотите разорвать какие-либо ссылки: BreakLinks Workbooks (Workbooks.Count) Workbooks (Workbooks.Count) .Close True, strPath & ws.Name & ".xlsx" Next Application  .ScreenUpdating = TrueEnd SubSub BreakLinks (wb как рабочая книга) Dim lnk как вариант для каждого lnk в wb.LinkSources (xlExcelLinks) wb. BreakLink lnk, xlLinkTypeExcelLinks NextEnd Sub  

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

  1. Откройте редактор VBA ( Alt + F11 )
  2. В дереве в левом верхнем углу щелкните правой кнопкой мыши свою книгу и вставьте новый модуль
  3. Скопируйте приведенный выше код в этот модуль.
  4. Закройте редактор VBA.
  5. В Excel нажмите Alt + F8 для запуска макросов и выберите SaveSheets

или посмотрите, как добавить VBA в MS Office?


12
  1. Щелкнув правой кнопкой мыши вкладку листа Excel, вы можете выбрать Переместить или Копировать …

  2. В появившемся диалоговом окне вы можете выбрать целевую рабочую книгу. Выберите (новая книга) .

  3. Нажмите ОК . Теперь ваш лист находится внутри нового документа.

Улучшите этот ответ
ответил 14 марта ’13 в 20:06
добавить комментарий |

  1. Щелкнув правой кнопкой мыши вкладку листа Excel, вы можете выбрать Переместить или скопировать …

  2. В появившемся диалоговом окне вы можете выбрать целевую рабочую книгу. Выберите (новая книга) .

  3. Нажмите ОК . Теперь ваш лист находится внутри нового документа.


10

Я попробовал решение Питера Альберта, и оно у меня не сработало, поэтому я нашел решение в этом посте («Excel — сохранять листы как отдельные файлы») в Дневнике компьютерного фаната.

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

  Sub CreateNewWBS () Dim wbThis As WorkbookDim wbNew As WorkbookDim ws As WorksheetDim strFilename As String Set wbThis = ThisWorkbook For Each ws In wbThis.Worksheets strFilename = wbThis.Path & "/" & ws.Name Set workbooks.Copy =  wbNew.SaveAs strFilename wbNew. Close Next wsEnd Sub  

Используйте инструкции для создания и запуска этого макроса из постора Питера Альберта из Как мне добавить VBA в MS Office?

Улучшить этот ответ
отредактировал 20 марта ’17 в 10:04
Сообщество ♦
1
ответил 17 мая ’14 в 15:29
  • 1
    Я также попробовал решение Питера Альберта, и произошла ошибка «Ошибка выполнения ’13 ‘: несоответствие типов. К счастью, решение в этом ответе у меня работает. — Бен, 27 января ’16 в 16:59
  • как я могу заставить его перезаписать существующие файлы с тем же именем? — DAE, 9 ноября 2017 г., 8:34
  • Мне это не нужно, потому что каждый дамп уходит в отдельную папку. Может быть, попробуйте эту ветку — hrvoj3e 10 ноя 2017 в 12:27
  • Ваше решение сработало для меня 🙂 — Мухаммад Вахид 20 дек ’19 в 06:39
добавить комментарий |

Я попробовал решение Питера Альберта, и оно не сработало для меня, поэтому я нашел решение в этом сообщении («Excel — сохранить рабочие листы как отдельные файлы ») в Дневнике компьютерного фаната.

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

  Sub CreateNewWBS () Dim wbThis As WorkbookDim wbNew As WorkbookDim ws As WorksheetDim strFilename As String Set wbThis = ThisWorkbook For Each ws In wbThis.Worksheets strFilename = wbThis.Path & "/ "& ws.Name ws.Copy Set wbNew = ActiveWorkbook wbNew.SaveAs strFilename wbNew.Close Next wsEnd Sub  

Используйте инструкции для создания и запуска этого макроса из постера Питера Альберта из How do Я добавляю VBA в MS Office?

Оцените статью
logicle.ru
Добавить комментарий