Возможно-ли к содержимому ячеек добавить определенное количество пробелов соблюдая еще и условности? пример в ячейке A1 добавить 2 пробела перед содержимым ячейки в ячейке B1 добавить 16 пробелов после содержимого в ячейке C1 добавить 19 пробелов после содержимого и тд одним словом мне нужно чтоб ячейки столбца А содержали ровно 4 символа ячейки столбца B и D - 20 символов ячейки столбца C и E - 25 символов а ячейки столбца F - 40 символов чтоб при копировании данных из ексэль в текстовый документ получить такое содержимое ok.txt
сейчас получаю такое nok.txt
Понимаю что вряд-ли кто будет решать мою проблему, но если кто знает, подскажить хоть куда искать...
alexbuh, вот таким макросом можно сохранить содержимое текущего листа в файл "ok.txt" в папку с книгой
Код
Type Fixed
a As String * 4
b As String * 20
c As String * 25
d As String * 20
e As String * 25
f As String * 40
g As String * 2
End Type
Sub Al()
Dim v(), i&, f$, t As Fixed
Open ActiveWorkbook.Path & "\ok.txt" For Random As #1 Len = Len(t)
v = Range("A1", Cells(Rows.Count, "F").End(xlUp)).Value
t.g = vbCrLf
For i = 1 To UBound(v)
RSet t.a = v(i, 1)
LSet t.b = v(i, 2)
LSet t.c = v(i, 3)
LSet t.d = v(i, 4)
LSet t.e = v(i, 5)
LSet t.f = v(i, 6)
Put 1, , t
Next
Reset
End Sub
Или так - короче, менее очевидна ширина каждой колонки, но более наглядна начальная позиция каждой колонки
Код
Sub Al_1()
Dim v(), i&
Open ActiveWorkbook.Path & "\ok.txt" For Output As #1
v = Range("A1", Cells(Rows.Count, "F").End(xlUp)).Value
For i = 1 To UBound(v)
Print #1, Format$(v(i, 1), "@@@@"); v(i, 2); Tab(25); v(1, 3); _
Tab(50); v(1, 4); Tab(70); v(1, 5); Tab(95); v(1, 6); Tab(135)
Next
Reset
End Sub