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

  • Советы по Excel
  • Функции Excel
  • Формулы Excel
  • Excel Диаграммы
  • Советы по словам
  • Советы по Outlook

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

Экспорт/сохранение одной строки в виде текстового файла с помощью Kutools for Excel

Экспорт/сохранение каждой строки в виде текстовых файлов с Kutools for Excel

Простое массовое сохранение каждого листа как отдельного PDF / CSV / текстового файла или книги в Excel

Обычно мы можем сохранить активный рабочий лист в виде отдельного файла .pdf, .txt или .csv с помощью функции «Сохранить как». Но Kutools for ExcelАвтора Разделить книгу Утилита поможет вам легко сохранить каждую книгу как отдельный файл PDF / CSV / Text или книгу в Excel.

текст книги рекламного разделения


Kutools for ExcelАвтора Диапазон экспорта в файл утилита может сохранять диапазон в виде текстового файла, файла csv или html и т. д. Таким образом, мы можем применить эту утилиту для легкого экспорта всей строки в виде текстового файла в Excel.

1. Выделите всю строку, которую вы сохраните как текстовый файл, и нажмите кнопку Кутулс Плюс > Импорт Экспорт > Диапазон экспорта в файл. Смотрите скриншот ниже:

2. В открывшемся диалоговом окне «Диапазон экспорта в файл» установите флажок Текст Юникода вариант, а затем нажмите кнопку Обзор за Сохранить каталог пунктом.

3. Во всплывающем диалоговом окне «Выбор каталога для экспорта файла» выберите папку, в которую вы сохраните текстовый файл, и нажмите кнопку OK кнопку.

4. Нажмите Ok кнопку, когда он вернется в Диапазон экспорта в файл диалоговое окно.

Ноты:

1. Если вы хотите открыть текстовый файл после успешного сохранения, вы можете проверить Открыть файл после экспорта в диалоговом окне «Экспортировать диапазон в файл».

2. Если вам нужно сохранить несколько строк как отдельные текстовые файлы, вы должны повторить эти шаги много раз, чтобы сохранить каждую строку как отдельный текстовый файл. Чтобы легко сохранить каждую строку в виде отдельного текстового файла, просмотрите следующий метод.

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now


Собственно, если у вас есть Kutools for Excel установлен, мы можем разделить каждую строку на новый лист по ее Разделить данные утилиту, а затем примените ее Разделить книгу утилита для сохранения этих листов в виде отдельных текстовых файлов в Excel.

1. Выберите диапазон, в котором вы сохраните каждую строку как текстовый файл, и щелкните значок Кутулс Плюс > Разделить данные.

2. В диалоговом окне «Открытие разделенных данных на несколько листов» установите флажок Фиксированные строки вариант и тип 1 в поле ниже укажите правило в поле Правила раскрывающееся меню и щелкните Ok кнопку.

 

Теперь каждая строка разделена на новый лист новой книги со строкой заголовка. Если вам не нужна строка заголовка на новых листах, снимите флажок У моих данных есть заголовки опцию.

3. На новом листе щелкните значок Кутулс Плюс > Workbook > Разделить книгу.

4. В открывшемся диалоговом окне «Разделить книгу» установите флажок Сохранить как выберите, выберите Текст в Юникоде (* .txt) из раскрывающегося списка ниже и нажмите кнопку Трещина кнопку.

doc экспортировать каждую строку как текст 01

Ноты:

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

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

5. Укажите папку, в которую вы будете сохранять текстовые файлы в папке Выбор папки диалоговое окно и щелкните Выбор папки кнопку.

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

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

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now




Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (11)


Оценок пока нет. Оцените первым!

Подписывайтесь на Нас

Copyright © 2009 —

www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта

Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.

Защищено Sectigo SSL

Сохранить каждую строку как отдельный файл

Автор scrackan, 02.02.2012, 23:07

« назад — далее »

Имеется экселевская таблица. Прикладываю образец (lines-file.xls).

Собственно, в файл можно не заглядывать — табличка там очень простая:
Ляляля1   Ляляля2   Ляляля3   Ляляля4
Хрюхрю5   Хрюхрю6   Хрюхрю7   Хрюхрю8
Кококо9   Кококо10   Кококо11   Кококо12

Требуется каждую строку сохранить как отдельный текстовый файл с каждой ячейкой на отдельной строке.

Т.е. конкретно в этом случае должно получиться 3 файла:

Ляляля1
Ляляля2
Ляляля3
Ляляля4

Хрюхрю5
Хрюхрю6
Хрюхрю7
Хрюхрю8

Кококо9
Кококо10
Кококо11
Кококо12

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

Имена файлов не принципиальны, но лучше, конечно, чтобы они подчинялись какой-нибудь системе (порядковые номера, например).


Пробуйте. Транспонирование не используется. Файлы создаются в той же папке.



Цитата: exceleved от 03.02.2012, 10:28
Пробуйте. Транспонирование не используется. Файлы создаются в той же папке.

А можно ли модифицировать макрос? Чтобы текстовые файлы сохранялись не в кодировке ANSI, а в UTF-8.

Или надо прибегать к сторонней софтине, которая пакетно преобразует все файлы в другую кодировку?



exceleved, спасибо большое!


Цитата: exceleved от 03.02.2012, 12:31
Пробуйте.

Обнаружил небольшой баг. Если строка таблицы не содержит ни одного кириллического символа, соответствующий файл сохранится в ANSI. Это можно исправить? Т.е. чтобы всегда сохранялось в UTF.




  • Профессиональные приемы работы в Microsoft Excel

  • Обмен опытом

  • Microsoft Excel

  • Сохранить каждую строку как отдельный файл

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

Могут возникать ситуации, при которых необходимо отправить кому-либо определенную информацию, например, небольшую часть большого отчета и сделать это таким образом, чтобы не посвящать получателя в лишние детали – расчеты, итоги, показатели и так далее.

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

Экспорт диапазона ячеек в файл

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

diapazon v fajl

Надстройка – это дополнительные функциональные возможности для приложения. Чтобы воспользоваться такими возможностями, надстройку необходимо установить. При этом, как правило, создается новая вкладка на ленте Excel и создается кнопка вызова диалогового окна.

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

В поле «Выбор диапазона» автоматически подставляется адрес выделенного на листе диапазона ячеек, либо несколько адресов через знак-разделитель «;» (точка с запятой), если выделено несколько диапазонов.

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

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

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

Как сохранить выделенные диапазоны изображениями?

Обычно, делается скриншот, то есть снимается изображение с экрана кнопкой «Print Screen» на клавиатуре, после этого изображение из буфера обмена вставляется в графический редактор и уже там вырезается нужный фрагмент изображения. При помощи надстройки всего этого можно не делать, достаточно выделить диапазон ячеек, выбрать формат «JPG» и запустить программу. Изображение выделенного диапазона будет сохранено в заданную папку с заданным именем в формате JPG.

Как сохранить выделенный диапазон отдельной книгой?

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

Как сохранить диапазон документом Word?

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

Как сохранить диапазон в pdf-файл

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

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

вот код макроса, копия на др лист

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

вот код макроса, копия на др лист

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

вот код макроса, копия на др лист

понял вас, значит так по скрипту вашему

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

хотел объединить мое копирование в лист и ваше в файл не получилось

Sub ЗаписьВОбщийЖурнал()

‘ Макрос2 Макрос
‘ Макрос записан 15.10.2007 (VladimirovAV)

Selection.Copy
Sheets(«База данных»).Select
Range(«A1″).Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveWorkbook.Save
Sheets(«Исходные данные»).Select
Selection.ClearContents
Range(«A3″).Select

If Not TypeName(Selection) = «Range» Then Exit Sub
Dim lr&, wb As Workbook, lb As Workbook
With Application: .ScreenUpdating = False: .DisplayAlerts = False: .EnableEvents = False: End With
Set wb = GetObject(«c:test.xls») ‘путь к файлу-накопителю
Set lb = ThisWorkbook
lr = wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Selection.EntireRow.Copy wb.Sheets(1).Cells(lr + 1, 1)
wb.Close (True) ‘ закрыть с сохранением
With Application: .EnableEvents = True: .DisplayAlerts = True: .ScreenUpdating = True: End With
Set wb = Nothing: Set lb = Nothing

понял вас, значит так по скрипту вашему

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

хотел объединить мое копирование в лист и ваше в файл не получилось

Sub ЗаписьВОбщийЖурнал()

‘ Макрос2 Макрос
‘ Макрос записан 15.10.2007 (VladimirovAV)

Selection.Copy
Sheets(«База данных»).Select
Range(«A1″).Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveWorkbook.Save
Sheets(«Исходные данные»).Select
Selection.ClearContents
Range(«A3″).Select

If Not TypeName(Selection) = «Range» Then Exit Sub
Dim lr&, wb As Workbook, lb As Workbook
With Application: .ScreenUpdating = False: .DisplayAlerts = False: .EnableEvents = False: End With
Set wb = GetObject(«c:test.xls») ‘путь к файлу-накопителю
Set lb = ThisWorkbook
lr = wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Selection.EntireRow.Copy wb.Sheets(1).Cells(lr + 1, 1)
wb.Close (True) ‘ закрыть с сохранением
With Application: .EnableEvents = True: .DisplayAlerts = True: .ScreenUpdating = True: End With
Set wb = Nothing: Set lb = Nothing

Сообщение понял вас, значит так по скрипту вашему

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

хотел объединить мое копирование в лист и ваше в файл не получилось

Sub ЗаписьВОбщийЖурнал()

‘ Макрос2 Макрос
‘ Макрос записан 15.10.2007 (VladimirovAV)

Selection.Copy
Sheets(«База данных»).Select
Range(«A1″).Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveWorkbook.Save
Sheets(«Исходные данные»).Select
Selection.ClearContents
Range(«A3″).Select

If Not TypeName(Selection) = «Range» Then Exit Sub
Dim lr&, wb As Workbook, lb As Workbook
With Application: .ScreenUpdating = False: .DisplayAlerts = False: .EnableEvents = False: End With
Set wb = GetObject(«c:test.xls») ‘путь к файлу-накопителю
Set lb = ThisWorkbook
lr = wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Selection.EntireRow.Copy wb.Sheets(1).Cells(lr + 1, 1)
wb.Close (True) ‘ закрыть с сохранением
With Application: .EnableEvents = True: .DisplayAlerts = True: .ScreenUpdating = True: End With
Set wb = Nothing: Set lb = Nothing

отказывается копировать Автор — aydar
Дата добавления — 22.03.2013 в 13:43

убрал, не получилось

убрал, не получилось

Сообщение убрал, не получилось

Sub ЗаписьВОбщийЖурнал()

‘ Макрос2 Макрос

Selection.Copy
Sheets(«База данных»).Select
Range(«A1»).Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveWorkbook.Save
Sheets(«Исходные данные»).Select
Selection.ClearContents
Range(«A3»).Select

‘это часть работает замечательно

‘ это копирования выделения в другой файл
If Not TypeName(Selection) = «Range» Then Exit Sub
Dim lr&, wb As Workbook, lb As Workbook
With Application: .ScreenUpdating = False: .DisplayAlerts = False: .EnableEvents = False: End With
Set wb = GetObject(«c:test.xls») ‘путь к файлу-накопителю
Set lb = ThisWorkbook
lr = wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Selection.Copy wb.Sheets(1).Cells(lr + 1, 1)
wb.Close (True) ‘ закрыть с сохранением
With Application: .EnableEvents = True: .DisplayAlerts = True: .ScreenUpdating = True: End With
Set wb = Nothing: Set lb = Nothing

копирование в другой файл работает криво, копируется вся строка а не выделение,иногда не все данные копируются

Sub ЗаписьВОбщийЖурнал()

‘ Макрос2 Макрос

Selection.Copy
Sheets(«База данных»).Select
Range(«A1»).Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveWorkbook.Save
Sheets(«Исходные данные»).Select
Selection.ClearContents
Range(«A3»).Select

‘это часть работает замечательно

‘ это копирования выделения в другой файл
If Not TypeName(Selection) = «Range» Then Exit Sub
Dim lr&, wb As Workbook, lb As Workbook
With Application: .ScreenUpdating = False: .DisplayAlerts = False: .EnableEvents = False: End With
Set wb = GetObject(«c:test.xls») ‘путь к файлу-накопителю
Set lb = ThisWorkbook
lr = wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Selection.Copy wb.Sheets(1).Cells(lr + 1, 1)
wb.Close (True) ‘ закрыть с сохранением
With Application: .EnableEvents = True: .DisplayAlerts = True: .ScreenUpdating = True: End With
Set wb = Nothing: Set lb = Nothing

копирование в другой файл работает криво, копируется вся строка а не выделение,иногда не все данные копируются aydar

Sub ЗаписьВОбщийЖурнал()

‘ Макрос2 Макрос

Selection.Copy
Sheets(«База данных»).Select
Range(«A1»).Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveWorkbook.Save
Sheets(«Исходные данные»).Select
Selection.ClearContents
Range(«A3»).Select

‘это часть работает замечательно

‘ это копирования выделения в другой файл
If Not TypeName(Selection) = «Range» Then Exit Sub
Dim lr&, wb As Workbook, lb As Workbook
With Application: .ScreenUpdating = False: .DisplayAlerts = False: .EnableEvents = False: End With
Set wb = GetObject(«c:test.xls») ‘путь к файлу-накопителю
Set lb = ThisWorkbook
lr = wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Selection.Copy wb.Sheets(1).Cells(lr + 1, 1)
wb.Close (True) ‘ закрыть с сохранением
With Application: .EnableEvents = True: .DisplayAlerts = True: .ScreenUpdating = True: End With
Set wb = Nothing: Set lb = Nothing

копирование в другой файл работает криво, копируется вся строка а не выделение,иногда не все данные копируются Автор — aydar
Дата добавления — 26.03.2013 в 11:36

Ну вот, зарегистрировались, теперь можно и попытаться разобраться.

У меня на моих файлах работает. Но у меня макрос уже «допиленный»
Проблема может быть в структуре данных.
Например, в приведённом Вами фрагменте кода
lr = wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row определяет ряд с первой пустой ячейкой В ПЕРВОМ СТОЛБЦЕ.
Поэтому если Вы копируете диапазон, где в ячейках первого столбца есть пустые, то lr определится не правильно и следующая запись наложится на предыдущую. Об этом, к стати, всё расписано в том топике, откуда Вы брали фрагмент. Вы дальше первого топика читали? Ну, например, ЭТО.

Приложите пример. Тогда кто-нибудь попробует разобраться почему у Вас не работает. (Я не смогу — на работе завал, да ещё и сисадмины закрыли скачивание файлов с макросами, собаки!)

Ну вот, зарегистрировались, теперь можно и попытаться разобраться.

У меня на моих файлах работает. Но у меня макрос уже «допиленный»
Проблема может быть в структуре данных.
Например, в приведённом Вами фрагменте кода
lr = wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row определяет ряд с первой пустой ячейкой В ПЕРВОМ СТОЛБЦЕ.
Поэтому если Вы копируете диапазон, где в ячейках первого столбца есть пустые, то lr определится не правильно и следующая запись наложится на предыдущую. Об этом, к стати, всё расписано в том топике, откуда Вы брали фрагмент. Вы дальше первого топика читали? Ну, например, ЭТО.

Приложите пример. Тогда кто-нибудь попробует разобраться почему у Вас не работает. (Я не смогу — на работе завал, да ещё и сисадмины закрыли скачивание файлов с макросами, собаки!) Alex_ST

Сообщение Ну вот, зарегистрировались, теперь можно и попытаться разобраться.

У меня на моих файлах работает. Но у меня макрос уже «допиленный»
Проблема может быть в структуре данных.
Например, в приведённом Вами фрагменте кода
lr = wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row определяет ряд с первой пустой ячейкой В ПЕРВОМ СТОЛБЦЕ.
Поэтому если Вы копируете диапазон, где в ячейках первого столбца есть пустые, то lr определится не правильно и следующая запись наложится на предыдущую. Об этом, к стати, всё расписано в том топике, откуда Вы брали фрагмент. Вы дальше первого топика читали? Ну, например, ЭТО.

Приложите пример. Тогда кто-нибудь попробует разобраться почему у Вас не работает. (Я не смогу — на работе завал, да ещё и сисадмины закрыли скачивание файлов с макросами, собаки!) Автор — Alex_ST
Дата добавления — 26.03.2013 в 12:39

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

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

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

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

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

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

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

 

artlayers

Пользователь

Сообщений: 4
Регистрация: 01.01.1970

Доброго времени суток. В VB не очень силен, посему прошу помощи.  
Есть на листе 50 столбцов, 5000 строк (эти данные примерно названы, они каждый раз будут разными, может быть и 100, а может и 100000). Нужно каждую строку считать и записать в отдельный файл с названием, которое содержится в первом столбце. Примерный макет может кто подкинет, я допилю. Спасибо.

 

Hugo

Пользователь

Сообщений: 23257
Регистрация: 22.12.2012

Option Explicit  

    Sub tt()  
   Dim i As Long  
   Dim ws As Worksheet  

     With Application  
       .DisplayAlerts = False  
       .ScreenUpdating = False  
       Set ws = ActiveSheet  

         For i = 1 To Range(«A» & Rows.Count).End(xlUp).Row  

             With Workbooks.Add  
               ws.Rows(i).Copy .Worksheets(1).Range(«A1»)  
               .SaveAs ThisWorkbook.Path & «» & .Worksheets(1).Range(«A1»)  
               .Close 0  
           End With  

         Next  

         .DisplayAlerts = True  
       .ScreenUpdating = True  
   End With  
End Sub

 

KuklP

Пользователь

Сообщений: 14868
Регистрация: 21.12.2012

E-mail и реквизиты в профиле.

Раз уж сделал:-)  
Public Sub www()  
   Dim c As Range  
   For Each c In ActiveSheet.Range(ActiveSheet.[a1], ActiveSheet.Cells(Rows.Count, 1).End(xlUp)).Cells
       With Workbooks.Add  
           Range(c, c.Offset(, 50)).Copy .Sheets(1).[a1]
           .SaveAs (ThisWorkbook.Path & «» & c.Value)  
           .Close  
       End With  
   Next  
End Sub

Я сам — дурнее всякого примера! …

 

100000 файлов — это круто!  
на продажу или для себя?

 

Hugo

Пользователь

Сообщений: 23257
Регистрация: 22.12.2012

Кстати да, если файлов много — стоит в мой вариант добавить вывод в статусбар количество несгенерённых файлов, а в код Сергея — наоборот :)

 

{quote}{login=offtop}{date=05.05.2011 01:48}{thema=}{post}100000 файлов — это круто!  
на продажу или для себя?{/post}{/quote}  
Только для себя.  

  Спасибо всем! Несколько вариантов уже точно не ожидал. Как можно сделать чтобы данные писались не в книги, а в текстовый файл, причем между каждой ячейкой должен быть перенос строки:  
cell_1  
cell_2  
cell_3  

 

Hugo

Пользователь

Сообщений: 23257
Регистрация: 22.12.2012

Да в общем оба варианта выше одинаковые.  
Писать в текст — это будет на порядок быстрее.  
Сразу берём диапазон в массив, затем цикл по массиву, цикл по строке массива и WriteLine или Print в новый текстовый файл.  
В коде сейчас изображать некогда.

 

Пробуйте  

  Sub artlayers()  
Dim c As Range, d As Range  
For Each c In ActiveSheet.UsedRange.Columns(1).SpecialCells(xlCellTypeConstants)  
   Open ThisWorkbook.Path & «» & c & «.txt» For Output As #1  
   For Each d In Range(c, Cells(c.Row, Columns.Count).End(xlToLeft))  
       Print #1, d  
   Next  
   Close #1  
Next  
End Sub

 

artlayers

Пользователь

Сообщений: 4
Регистрация: 01.01.1970

{quote}{login=Казанский}{date=05.05.2011 01:51}{thema=}{post}Пробуйте  

  Sub artlayers()  
Dim c As Range, d As Range  
For Each c In ActiveSheet.UsedRange.Columns(1).SpecialCells(xlCellTypeConstants)  
   Open ThisWorkbook.Path & «» & c & «.txt» For Output As #1  
   For Each d In Range(c, Cells(c.Row, Columns.Count).End(xlToLeft))  
       Print #1, d  
   Next  
   Close #1  
Next  
End Sub{/post}{/quote}  

  Отлично! Спасибо, это как раз то что надо. Можно ли писать не все строки, а только которые видны (например, скрытые через фильтры не брать). Какое свойство от строки скажет что она не активная? Если это сильно усложняет макрос, то не нужно.

 

Казанский

Пользователь

Сообщений: 8839
Регистрация: 11.01.2013

#10

05.05.2011 18:33:06

Не сильно :)  
просто допишите еще один спешиалселлз:  

  For Each c In ActiveSheet.UsedRange.Columns(1).SpecialCells(xlCellTypeConstants).SpecialCells(xlCellTypeVisible)  

  Собсно, SpecialCells(xlCellTypeConstants) нужен для того, чтобы пропускать пустые ячейки. Если их нет, можно эту часть исключить.

Запись каждой строки в отдельный файл

arudomanov

Дата: Суббота, 16.07.2016, 09:12 |
Сообщение № 1

Группа: Пользователи

Ранг: Прохожий

Сообщений: 1


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

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

[vba]

Код

Sub artlayers()
Dim c As Range, d As Range
For Each c In ActiveSheet.UsedRange.Columns(1).SpecialCells(xlCellTypeConstants)
Open ThisWorkbook.Path & «» & c & «.html» For Output As #1
For Each d In Range(c, Cells(c.Row, Columns.Count).End(xlToLeft))
Print #1, d
Next
Close #1
Next
End Sub

[/vba]

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

Заранее благодарен за подсказки.

 

Ответить

Rioran

Дата: Суббота, 16.07.2016, 12:35 |
Сообщение № 2

Группа: Авторы

Ранг: Ветеран

Сообщений: 903


Репутация:

290

±

Замечаний:
0% ±


Excel 2013

arudomanov, здравствуйте.

Предлагаю попробовать так:

[vba]

Код

Sub Rio_ArtLayers()
    Dim c As Range, d As Range, S$, xSeparator$
    xSeparator = » // » ‘ Чем будут разделены данные одной строки
    For Each c In ActiveSheet.UsedRange.Columns(1).SpecialCells(xlCellTypeConstants)
        Open ThisWorkbook.Path & «» & c & «.html» For Output As #1
        S = «»
        ‘ c.Offset(0, 1) — позволяет начать перебор ячеек для записи не с первой колонки
        For Each d In Range(c.Offset(0, 1), Cells(c.Row, Columns.Count).End(xlToLeft))
            S = S & xSeparator & d.Value
        Next
        ‘ Замена переноса строки на пробел. Если не работает — узнать, какой перенос строки используется вместо Chr(10)
        S = Replace(S, Chr(10), » «)
        S = Mid(S, Len(xSeparator) + 1) ‘ Обрезаем лишний разделитель в начале
        Print #1, S
        Close #1
    Next
End Sub

[/vba]
Без Ваших файлов сложно протестировать, так что ждём Вашей обратной связи =)


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279

Сообщение отредактировал RioranСуббота, 16.07.2016, 12:35

 

Ответить

alyonka1

Дата: Вторник, 02.08.2016, 16:55 |
Сообщение № 3

Группа: Пользователи

Ранг: Прохожий

Сообщений: 4


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Rioran, спасибо Вам за код. Я вместо автора проверила все отлично работает:)
Но никак не могу понять как сохранить перенос строк внутри ячейки в новых созданных файлах, т.е. когда внутри каждой ячейки есть записи с новой строки и чтобы они также отображались с новой строки в файле.
Прикрепила пример файла.

 

Ответить

Матраскин

Дата: Вторник, 02.08.2016, 17:17 |
Сообщение № 4

Группа: Друзья

Ранг: Обитатель

Сообщений: 375


Репутация:

81

±

Замечаний:
0% ±


20xx

alyonka1,
[vba]

Код

S = Replace(S, Chr(10), «<br>»)

[/vba]

переносы меняем на перенос ^^,)


в интернете опять кто-то не прав

 

Ответить

alyonka1

Дата: Вторник, 02.08.2016, 17:26 |
Сообщение № 5

Группа: Пользователи

Ранг: Прохожий

Сообщений: 4


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Матраскин, я забыла указать, что мне нужно не для Html, а просто обычный txt файл. <br> — это же перенос строки в html?

 

Ответить

Матраскин

Дата: Вторник, 02.08.2016, 17:34 |
Сообщение № 6

Группа: Друзья

Ранг: Обитатель

Сообщений: 375


Репутация:

81

±

Замечаний:
0% ±


20xx

alyonka1, да, именно так. Для текстовых «n» пойдёт


в интернете опять кто-то не прав

 

Ответить

alyonka1

Дата: Вторник, 02.08.2016, 17:40 |
Сообщение № 7

Группа: Пользователи

Ранг: Прохожий

Сообщений: 4


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Матраскин, странно, но у меня после выполнения макроса получается в файле такое: Строка 1_1nСтрока 1_2nСтрока 1_3nСтрока 1_4nСтрока 1_5, а не

Строка 1_1
Строка 1_2
Строка 1_3
Строка 1_4
Строка 1_5

 

Ответить

Матраскин

Дата: Вторник, 02.08.2016, 17:42 |
Сообщение № 8

Группа: Друзья

Ранг: Обитатель

Сообщений: 375


Репутация:

81

±

Замечаний:
0% ±


20xx

alyonka1, я не проверил, тут другие правила

[vba]

Код

S = Replace(S, Chr(10), vbCrLf)

[/vba]


в интернете опять кто-то не прав

 

Ответить

Manyasha

Дата: Вторник, 02.08.2016, 17:43 |
Сообщение № 9

Группа: Модераторы

Ранг: Старожил

Сообщений: 2198


Репутация:

898

±

Замечаний:
0% ±


Excel 2010, 2016

alyonka1, так попробуйте
[vba]

Код

S = Replace(S, Chr(10), vbcrlf)

[/vba]


ЯД: 410013299366744 WM: R193491431804

 

Ответить

Матраскин

Дата: Вторник, 02.08.2016, 17:45 |
Сообщение № 10

Группа: Друзья

Ранг: Обитатель

Сообщений: 375


Репутация:

81

±

Замечаний:
0% ±


20xx

Manyasha,


в интернете опять кто-то не прав

 

Ответить

alyonka1

Дата: Вторник, 02.08.2016, 17:53 |
Сообщение № 11

Группа: Пользователи

Ранг: Прохожий

Сообщений: 4


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Manyasha, Матраскин, Это просто мечта научиться так легко и быстро решать такие «головоломки» (лично для меня).
Огромнейшее Вам спасибо за помощь!

P.S. Плюсик смогу поставить только через 24 часа.

 

Ответить

naqrV

Дата: Понедельник, 27.03.2017, 18:51 |
Сообщение № 12

Группа: Пользователи

Ранг: Прохожий

Сообщений: 1


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

здравствуйте, искал решение, наткнулся на эту тему, спасибо, полезно!
Подскажите, а как доработать скрипт, чтобы он брал имена файлов из столбцов слева при сохранении?
колонки в файле выглядят так:

filename_1 text_1 filename_2 text_2 filename_3 text_4 filename_5 text_6 filename_7 text_7
может ли он сканировать наличие справа дополнительных колонок и в случае обнаружения также сохранять?

может, кто знает? спасибо

 

Ответить

Понравилась статья? Поделить с друзьями:
  • Сохранить страницы word как отдельные документы
  • Сохраняемые записи в excel
  • Сохранить страницу word как рисунок
  • Сохраняем excel на javascript
  • Сохранить страницу word как изображение