Необходимо написать код, который будет бегать по листу Excel'я, данные записывать в текстовый файл, и сохранять текстовый файл в туже директорию, где лежит файл с макросом. Написал вот такой код: [vba]
Код
Set objFSO = CreateObject("Scripting.FileSystemObject") v = ThisWorkbook.Path Set objFile = objFSO.CreateTextFile(v & ActiveSheet.Name & ".txt") For i = 2 To Sheets("sec").UsedRange.Rows.Count For j = 4 To Sheets("sec").UsedRange.Columns.Count If Sheets("sec").Cells(i, j).Value <> "" Then objFile.writeline (Sheets("sec").Cells(i, j).Value) End If Next j Next i MsgBox ("Созданный файл сохранен: " & ThisWorkbook.Path)
[/vba]
Однако, файл не сохраняется. Причем я вижу, что директория в ThisWorkbook.Path отображается верно. Вариант с ActiveWorkbook.Path тоже пробовал, не помогло. Подскажите пожалуйста, в чем может быть проблема!
Здравствуйте!
Необходимо написать код, который будет бегать по листу Excel'я, данные записывать в текстовый файл, и сохранять текстовый файл в туже директорию, где лежит файл с макросом. Написал вот такой код: [vba]
Код
Set objFSO = CreateObject("Scripting.FileSystemObject") v = ThisWorkbook.Path Set objFile = objFSO.CreateTextFile(v & ActiveSheet.Name & ".txt") For i = 2 To Sheets("sec").UsedRange.Rows.Count For j = 4 To Sheets("sec").UsedRange.Columns.Count If Sheets("sec").Cells(i, j).Value <> "" Then objFile.writeline (Sheets("sec").Cells(i, j).Value) End If Next j Next i MsgBox ("Созданный файл сохранен: " & ThisWorkbook.Path)
[/vba]
Однако, файл не сохраняется. Причем я вижу, что директория в ThisWorkbook.Path отображается верно. Вариант с ActiveWorkbook.Path тоже пробовал, не помогло. Подскажите пожалуйста, в чем может быть проблема!Red_Sloth
файл при закрытии сохраняется, а я не нашел этой строчки в приведённом коде [vba]
Код
Public Sub test() Dim rng1 As Range, c As Range
Set rng1 = ActiveSheet.UsedRange Set fs = CreateObject("Scripting.FileSystemObject") Set f1 = fs.CreateTextFile("d:\testfile.txt", True) For Each c In rng1 If c.Value <> "" Then f1.WriteLine (c.Value)
файл при закрытии сохраняется, а я не нашел этой строчки в приведённом коде [vba]
Код
Public Sub test() Dim rng1 As Range, c As Range
Set rng1 = ActiveSheet.UsedRange Set fs = CreateObject("Scripting.FileSystemObject") Set f1 = fs.CreateTextFile("d:\testfile.txt", True) For Each c In rng1 If c.Value <> "" Then f1.WriteLine (c.Value)
Next f1.Close '!!! End Sub
[/vba] [p.s.]в моём коде сохранение в корень dUdik
Public Sub test() Dim rng1 As Range, c As Range Set rng1 = ActiveSheet.UsedRange Set fs = CreateObject("Scripting.FileSystemObject") Set f1 = fs.CreateTextFile("d:\testfile.txt", True) For Each c In rng1 If c.Value <> "" Then f1.WriteLine (c.Value) Next f1.Close '!!! End Sub
Public Sub test() Dim rng1 As Range, c As Range Set rng1 = ActiveSheet.UsedRange Set fs = CreateObject("Scripting.FileSystemObject") Set f1 = fs.CreateTextFile("d:\testfile.txt", True) For Each c In rng1 If c.Value <> "" Then f1.WriteLine (c.Value) Next f1.Close '!!! End Sub
alex77755, Создается, дописывается - но только время и дата, но не данные столбца (листа) Нашел чтобы дописывал данные. Переделал, чтобы записывал с первого столбика только данные. И использовал [vba]
Open ThisFile For Append As #1 FinalRow = Range("A65536").End(xlUp).Row ' Записать файл For j = 1 To FinalRow Print #1, Cells(j, 1).Value Next j Close #1 MsgBox ThisFile & " completed." End Sub
[/vba]
alex77755, Создается, дописывается - но только время и дата, но не данные столбца (листа) Нашел чтобы дописывал данные. Переделал, чтобы записывал с первого столбика только данные. И использовал [vba]
Open ThisFile For Append As #1 FinalRow = Range("A65536").End(xlUp).Row ' Записать файл For j = 1 To FinalRow Print #1, Cells(j, 1).Value Next j Close #1 MsgBox ThisFile & " completed." End Sub