Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.07.2016, 09:20   #1
arudo
Новичок
Джуниор
 
Регистрация: 16.07.2016
Сообщений: 3
По умолчанию Сохранения каждой строчки в отдельный файл

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

Цитата:
Sub artlayers()
Dim c As Range, d As Range
For Each c In ActiveSheet.UsedRange.Columns(1).Sp ecialCells(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
все отлично сохраняет, но берет имя из первого столбца, а мне необходимо имя брать из одного столбца, а в файл заносить остальные. т.е. ячейки с именем файла в теле файла быть не должно.
еще было бы не плохо, если бы в тхт файле все данные были в одну строчку, без переносов.

Заранее благодарен за подсказки.
arudo вне форума Ответить с цитированием
Старый 16.07.2016, 09:31   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

правильно сформулированный вопрос - это залог точного ответа.

Вам нужны подсказки или Вам нужен работающий код?

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

удачи!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 16.07.2016, 09:44   #3
arudo
Новичок
Джуниор
 
Регистрация: 16.07.2016
Сообщений: 3
По умолчанию

скорее работающий код, или конкретное предложение по доработке существующего
arudo вне форума Ответить с цитированием
Старый 16.07.2016, 10:09   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

набросок
Код:
Sub artlayers()
Dim c As Range, d As Range, s as string
For Each c In ActiveSheet.UsedRange.Columns(1).Sp ecialCells(xlCellTypeConstants)
Open ThisWorkbook.Path & "\" & c & ".html" For Output As #1
s = ""
For Each d In Range(c.offset(0,1), Cells(c.Row, Columns.Count).End(xlToLeft))
s = s & d
next
Print #1, s

Close #1
Next
End Sub
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 16.07.2016 в 10:19.
Aleksandr H. вне форума Ответить с цитированием
Старый 16.07.2016, 11:04   #5
arudo
Новичок
Джуниор
 
Регистрация: 16.07.2016
Сообщений: 3
По умолчанию

набросок оказался вполне рабочим кодом, скажите как вас отблагодарить?
arudo вне форума Ответить с цитированием
Старый 16.07.2016, 12:56   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Sub Data2TxtFiles()
  Dim r&
  For r = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    Open ThisWorkbook.Path & "\" & c & ".html" For Output As #1
    With WorksheetFunction
      If .CountA(Rows(r)) = 2 Then Print #1, "" & Cells(r, 2) Else Print #1, Join(.Transpose(.Transpose(Cells(r, 2).Resize(1, .CountA(Rows(r)) - 1))), "")
    End With
    Close #1
  Next
End Sub
или уменьшим количество строк в макросе
Код:
Sub Data2TxtFiles()
  Dim r&
  For r = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    Open ThisWorkbook.Path & "\" & c & ".html" For Output As #1
    If WorksheetFunction.CountA(Rows(r)) = 2 Then Print #1, "" & Cells(r, 2) Else Print #1, Join(WorksheetFunction.Transpose(WorksheetFunction.Transpose(Cells(r, 2).Resize(1, WorksheetFunction.CountA(Rows(r)) - 1))), "")
    Close #1
  Next
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 16.07.2016 в 17:22.
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно из файла переписать текст, после каждой строчки которого стоит воскл.знак. vralayala Паскаль, Turbo Pascal, PascalABC.NET 3 25.10.2013 19:56
Есть 2 обьедененых столбца, нужно убрать пробелы из каждой строчки NewStudent07 Microsoft Office Excel 4 20.04.2013 22:06
найти в каждой строчке найбольший и найменьший елемент и поставить их на первом и последнем месте строчки wlll Помощь студентам 1 07.11.2010 23:34
Сохранения каждой главы в отдельный файл mamed05 Microsoft Office Word 8 22.05.2009 16:19
найти минимальный элемент в каждой строке матрицы и записать все минимальные элементы в отдельный массив W_P Помощь студентам 6 28.12.2007 00:24