Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование, связанное с MS Office > Запись в текстовый файл


Автор: olga90 21.3.2008, 10:15
хочу записать значения в текстовый файл

Код

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim fso As New FileSystemObject
Dim ts As textstream
Dim line As String
Dim i As Long

Set fso = CreateObject("scripting.filesystemobject")
Set ts = fso.opentextfile("c:\var.txt", ForWriting)

With ts
    Do While Not .atendofstream
        .WriteLine y2
        .WriteLine y3
        .WriteLine y4
        .WriteLine y5
        .WriteLine y6
        .WriteLine y7
    Loop
    .Close
End With
End Sub



выдается ошибка на Do While Not .atendofstream

Цитата

Bad File Mode

Автор: LOPUH 21.3.2008, 13:14
Код

Option Explicit


Sub Example()
Dim fs As Object, a As Object
Dim varData As Variant, i As Variant
varData = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("c:\testfile.txt", True)
    For Each i In varData
        a.WriteLine (i)
    Next i
a.Close
End Sub

 Вот наваял.. вроде работает.. Если файла не существует,то он создается , старый переписывается..
Или тебе нужно значения к старым дописывать?

Автор: Akina 21.3.2008, 13:42
Цитата(olga90 @  21.3.2008,  11:15 Найти цитируемый пост)
выдается ошибка на Do While Not .atendofstream

Ну правильно - какой может быть конец потока у файла, открытого на ЗАПИСЬ???

Автор: olga90 21.3.2008, 13:55
а как правильно тогда нужно?

Автор: Akina 21.3.2008, 15:41
Цитата(olga90 @  21.3.2008,  14:55 Найти цитируемый пост)
а как правильно 

Какой у тебя критерий окончания записи? Когда все данные записаны. Следовательно, проверять-то ничего не требуется. То есть из твоего кода убираем цикл Do-Loop (удаляем строки номер 11 и 18) - и остается нормальный рабочий код.

Автор: mihanik 5.4.2008, 13:23
Помечаем решённым

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)