Доброго времени суток! Есть файл xlsx со большим количеством строк и 16 столбцами (оригинал), нужно их сохранить как .txt с определенным условием. например столбец 1 условие 10 символов, если в первой строке 10 или более цифр или букв то он просто их сохраняет, меньше, добавляет столько пробелов сколько нужно. Результат.txt Пример.xls
Доброго времени суток! Есть файл xlsx со большим количеством строк и 16 столбцами (оригинал), нужно их сохранить как .txt с определенным условием. например столбец 1 условие 10 символов, если в первой строке 10 или более цифр или букв то он просто их сохраняет, меньше, добавляет столько пробелов сколько нужно. Результат.txt Пример.xlsIttanational
Сообщение отредактировал Ittanational - Понедельник, 19.04.2021, 10:09
Условие у первого столбца 10 символов, значит если там цифра 333 то он должен добавить в txt файл 333 и 7 раз пробел, затем данные из второго столбца сразу(пример условие у второго столбца 12 а данные во втором столбце 1234567) и у нас должна получится такая строка
Условие у первого столбца 10 символов, значит если там цифра 333 то он должен добавить в txt файл 333 и 7 раз пробел, затем данные из второго столбца сразу(пример условие у второго столбца 12 а данные во втором столбце 1234567) и у нас должна получится такая строка
Sub Button1_Click() Dim str As Variant, i As Integer, j As Integer Dim space As Integer Dim k As Byte Dim space_str As String Dim fs Dim a
Set fs = CreateObject("Scripting.FileSystemObject") Set a = fs.CreateTextFile("c:\test.txt", True)
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row str = "" For j = 1 To Cells(1, Columns.Count).End(xlToLeft).Column space = Cells(1, j) - Len(Cells(i, j)) space_str = "" If space > 0 Then For k = 1 To space space_str = space_str & " " Next k End If str = str & Cells(i, j) & space_str Next j a.WriteLine (str) Next i a.Close End Sub
[/vba]
[vba]
Код
Sub Button1_Click() Dim str As Variant, i As Integer, j As Integer Dim space As Integer Dim k As Byte Dim space_str As String Dim fs Dim a
Set fs = CreateObject("Scripting.FileSystemObject") Set a = fs.CreateTextFile("c:\test.txt", True)
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row str = "" For j = 1 To Cells(1, Columns.Count).End(xlToLeft).Column space = Cells(1, j) - Len(Cells(i, j)) space_str = "" If space > 0 Then For k = 1 To space space_str = space_str & " " Next k End If str = str & Cells(i, j) & space_str Next j a.WriteLine (str) Next i a.Close End Sub
Sub aaa() Dim S$, SS$, C&, R& Open ThisWorkbook.Path & "\REZ.TXT" For Output As 1 For R = 2 To 65536 If Cells(R, 1) = "" Then Exit For SS = "" For C = 1 To 256 If Cells(1, C) = "" Then Exit For S = Space$(Val(Cells(1, C))) LSet S = Cells(R, C) SS = SS & S Next 'Debug.Print SS Print #1, SS Next R Close 1 End Sub
[/vba]
ВАРИАНТ - [vba]
Код
Sub aaa() Dim S$, SS$, C&, R& Open ThisWorkbook.Path & "\REZ.TXT" For Output As 1 For R = 2 To 65536 If Cells(R, 1) = "" Then Exit For SS = "" For C = 1 To 256 If Cells(1, C) = "" Then Exit For S = Space$(Val(Cells(1, C))) LSet S = Cells(R, C) SS = SS & S Next 'Debug.Print SS Print #1, SS Next R Close 1 End Sub
psih, Апострофф, оба ваших варианты верные, но моих знаний не хватает изменить его конструкцию, можно ли сделать под образец? 1 строка это условия, 2 уже нужное значение
psih, Апострофф, оба ваших варианты верные, но моих знаний не хватает изменить его конструкцию, можно ли сделать под образец? 1 строка это условия, 2 уже нужное значениеIttanational