Приветствую и прошу помочь в вопросе редактирования текстового документа средствами VBA.
В экселе идёт расчёт и на выходе имеем несколько значений, которые нужно добавить в текстовый документ.
Данные в текстовом документе нужны для индикатора терминала мт4 и по этому должны быть расположены в определённом порядке (пример одной строки (03.09.2015;1.15852380597742;1;Aqua;3) (дата;уровень;тип линии;цвет линии;толщина).
На данный момент сделал кнопку, которая создаёт текстовый документ из диапазона, при этом более старые данные удаляются.
Вот код.
Sub euro1()
Dim fso As Object
Dim txt As Object
Dim cell As Range
Set fso = CreateObject("Scripting.FileSystemObject")
Set txt = fso.CreateTextFile("D:\папа\опц\ind\str.txt", True)
For Each cell In Range("A2:A20")
txt.WriteLine cell
Next
txt.Close
Set txt = Nothing
Set fso = Nothing
End Sub
Приходится открывать промежуточный текстовый документ, копировать из него данные и вставлять в рабочий текстовый документ. Вот собственно у меня вопрос, можно сделать так, что бы при нажатии на кнопку данные добавлялись в последнюю пустую строку рабочего текстового документа (редактирование)?
Почитав "хитрости" про поиск последней пустой строки изменил код так, что бы данные добавлялись непосредственно в экселе, а диапазон для текстового документа брался с учётом добавленных.
Выглядит это так.
Sub Copy_To_Last_Cell()
Range("B1:B2").Copy Cells(Rows.Count, 1).End(xlUp).Offset(1)
Dim fso As Object
Dim txt As Object
Dim cell As Range
Set fso = CreateObject("Scripting.FileSystemObject")
Set txt = fso.CreateTextFile("D:\папа\опц\ind\primer.txt", True)
For Each cell In Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
txt.WriteLine cell
Next
txt.Close
Set txt = Nothing
Set fso = Nothing
End Sub
Это работает если просто вписывать цифры, но у меня последние ячейки, которые нужно копировать, это формулы "сцепить" и уже работает не так как нужно....
Не исключаю простейшей ошибки. Не принципиально исправление именно этих методов, может есть другие средства для реализации задачи, главное что бы работало.