Новости:

Название темы должно отражать суть задачи.
Темы типа "ПОМОГИТЕ!!!", "Срочно!" и т.п. будут удаляться без объяснения причин

Главное меню

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

Автор Browning Zed, 15.08.2021, 21:38:34

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

Browning Zed

Добрый день, уважаемые форумчане.
Для одновременного сохранения нескольких листов книги в отдельные файлы я пользуюсь следующим макросом:
Sub ExportSheetsToText()
   Dim xWs As Worksheet
   Dim xTextFile As String
   Application.DisplayAlerts = False
   For Each xWs In Application.ActiveWorkbook.Worksheets
       xWs.Copy
       ActiveSheet.Cells.Replace Chr(10), Chr(32)
       xTextFile = ThisWorkbook.Path & "\Data\" & xWs.Name & ".txt"
       Application.ActiveWorkbook.SaveAs Filename:=xTextFile, FileFormat:=xlText
       Application.ActiveWorkbook.Saved = True
       Application.ActiveWorkbook.Close
   Next
   Application.DisplayAlerts = True
   Response = MsgBox("Экспорт данных завершен.", vbOKOnly, "Экспорт данных")
End Sub

У меня четыре вопроса по модификации данного кода:
1. Если в какой-либо ячейке исходного Exel-файла имеется символ запятой, то данные из этой ячейки при сохранении в файл будут обрамлены кавычками:
"один,два,три"
как убрать при экспорте эти кавычки, чтобы получить:
один,два,три
2. Как при сохранении содержимого листов в файлы исключить первую строку каждого листа (заголовок)?
3. Возможно ли исключить экспорт строк первая ячейка которых пустая?
4. Есть ли возможность назначить активацию макроса в момент когда пользователь нажимает кнопку сохранения исходного файла Exel?

Буду благодарен за решение любого из вышеозначенных вопросов. Спасибо заранее.

vikttur


Browning Zed

Цитата: vikttur от 15.08.2021, 22:20:41
Здесь помогают
И? Я не имею права задать вопрос на этом форуме (не увидел данного пункта в правилах, но, возможно, правило негласное)? На обоих форумах состав участников, которые помогли бы решению в вопросах VBA абсолютно идентичен? Возможно, слишком много вопросов, но все же.

vikttur

#3
Цитироватьне увидел данного пункта в правилах
Почему бы не помочь хорошему человеку? Из Общих правил форума:
Цитировать4.24. Если Вы создали тему не только на данном форуме, а на нескольких других(кросспостинг), то очень желательно указывать ссылки на обсуждения проблемы в других форумах. Таким образом Вы сможете дать понять участникам, что обсуждение проблемы ведется на разных форумах и, возможно, там уже есть ответ или нужные уточнения. Помните, что на тематических форумах, как правило, участники одни и те же и они все равно быстро определят наличие Вашей темы на других форумах. Но не информируя участников об этом Вы создадите впечатление пренебрежительного отношения к другим участникам, т.к. если ответ будет получен на другом форуме и обсуждение не закрыто в этом форуме - участники будут напрасно тратить свое время в попытках решить Вашу проблему. А потом окажется, что время было потрачено зря, т.к. проблема уже не актуальна.
Похожий пункт есть и на других форумах.

Browning Zed

Цитата: vikttur от 15.08.2021, 23:27:12
Из Общих правил форума
Да, действительно, приношу свои извинения. Ссылку на обсуждение с другого форума вы оставили выше, поэтому повторно, думаю, можно не указывать.

Яндекс.Метрика Рейтинг@Mail.ru