Все привет. Есть задача сохранить каждую строчку в отдельный файл тхт, вроде нашел решение, но необходимо как то его доработать
[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]
все отлично сохраняет, но берет имя из первого столбца, а мне необходимо имя брать из одного столбца, а в файл заносить остальные. т.е. ячейки с именем файла в теле файла быть не должно. еще было бы не плохо, если бы в тхт файле все данные были в одну строчку, без переносов.
Заранее благодарен за подсказки.
Все привет. Есть задача сохранить каждую строчку в отдельный файл тхт, вроде нашел решение, но необходимо как то его доработать
[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]
все отлично сохраняет, но берет имя из первого столбца, а мне необходимо имя брать из одного столбца, а в файл заносить остальные. т.е. ячейки с именем файла в теле файла быть не должно. еще было бы не плохо, если бы в тхт файле все данные были в одну строчку, без переносов.
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] Без Ваших файлов сложно протестировать, так что ждём Вашей обратной связи =)
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] Без Ваших файлов сложно протестировать, так что ждём Вашей обратной связи =)Rioran
Роман, Москва, voronov_rv@mail.ru Яндекс-Деньги: 41001312674279
Сообщение отредактировал Rioran - Суббота, 16.07.2016, 12:35
Rioran, спасибо Вам за код. Я вместо автора проверила все отлично работает:) Но никак не могу понять как сохранить перенос строк внутри ячейки в новых созданных файлах, т.е. когда внутри каждой ячейки есть записи с новой строки и чтобы они также отображались с новой строки в файле. Прикрепила пример файла.
Rioran, спасибо Вам за код. Я вместо автора проверила все отлично работает:) Но никак не могу понять как сохранить перенос строк внутри ячейки в новых созданных файлах, т.е. когда внутри каждой ячейки есть записи с новой строки и чтобы они также отображались с новой строки в файле. Прикрепила пример файла.alyonka1
здравствуйте, искал решение, наткнулся на эту тему, спасибо, полезно! Подскажите, а как доработать скрипт, чтобы он брал имена файлов из столбцов слева при сохранении? колонки в файле выглядят так:
filename_1 text_1 filename_2 text_2 filename_3 text_4 filename_5 text_6 filename_7 text_7 может ли он сканировать наличие справа дополнительных колонок и в случае обнаружения также сохранять?
может, кто знает? спасибо
здравствуйте, искал решение, наткнулся на эту тему, спасибо, полезно! Подскажите, а как доработать скрипт, чтобы он брал имена файлов из столбцов слева при сохранении? колонки в файле выглядят так:
filename_1 text_1 filename_2 text_2 filename_3 text_4 filename_5 text_6 filename_7 text_7 может ли он сканировать наличие справа дополнительных колонок и в случае обнаружения также сохранять?