Здравствуйте. Помогите разобраться с сложной проблемой.
У меня есть диапазон G5:H5000. И его нужно перенести в файл 1.txt - как табулированный текст.
Но проблема в том, что у этого диапазона, который отобразится в txt - должно быть не два, а три столбца. В этом дополнительном столбце должна находится дата, которая образовывалась бы объединением значений столбцов В, С, D - то есть
Код
=B5&C5&D5
То есть в txt сперва пойдет столбец с датой, потом пойдет столбец G, потом столбец H.
Создавать дополнительные столбцы - нельзя, то есть этот дополнительный столбец с датой - нужно как-то в макросе создать. Я прикрепил файл - как в итоге должен выглядеть 1.txt
Здравствуйте. Помогите разобраться с сложной проблемой.
У меня есть диапазон G5:H5000. И его нужно перенести в файл 1.txt - как табулированный текст.
Но проблема в том, что у этого диапазона, который отобразится в txt - должно быть не два, а три столбца. В этом дополнительном столбце должна находится дата, которая образовывалась бы объединением значений столбцов В, С, D - то есть
Код
=B5&C5&D5
То есть в txt сперва пойдет столбец с датой, потом пойдет столбец G, потом столбец H.
Создавать дополнительные столбцы - нельзя, то есть этот дополнительный столбец с датой - нужно как-то в макросе создать. Я прикрепил файл - как в итоге должен выглядеть 1.txt SergVrn
Sub example_02() 'http://www.excelworld.ru/board/vba/tricks/text_files/9-1-0-38 Dim x, y(), i&, s$
With Sheets("Лист3") If .FilterMode Then .ShowAllData x = .Range("B5:H" & .Cells(Rows.Count, 2).End(xlUp).Row).Value End With
ReDim y(1 To UBound(x)) For i = 1 To UBound(x) y(i) = x(i, 1) & x(i, 2) & x(i, 3) & vbTab & x(i, 6) & vbTab & x(i, 7) Next i s = Join(y, vbCrLf)
With CreateObject("scripting.filesystemobject") With .CreateTextFile(ThisWorkbook.Path & "\sheet44.txt", True) .Write s: .Close End With End With MsgBox "Ok", 64 End Sub
[/vba]
SergVrn, привет попробуйте так: [vba]
Код
Sub example_02() 'http://www.excelworld.ru/board/vba/tricks/text_files/9-1-0-38 Dim x, y(), i&, s$
With Sheets("Лист3") If .FilterMode Then .ShowAllData x = .Range("B5:H" & .Cells(Rows.Count, 2).End(xlUp).Row).Value End With
ReDim y(1 To UBound(x)) For i = 1 To UBound(x) y(i) = x(i, 1) & x(i, 2) & x(i, 3) & vbTab & x(i, 6) & vbTab & x(i, 7) Next i s = Join(y, vbCrLf)
With CreateObject("scripting.filesystemobject") With .CreateTextFile(ThisWorkbook.Path & "\sheet44.txt", True) .Write s: .Close End With End With MsgBox "Ok", 64 End Sub