Доброго времени суток форумчане! Помогите пожалуйста поправить код для записи файла в формате txt (Текстовые файлы (с разделителями табуляции)). И еще без запроса сохранения файла и места (название файла по умолчанию redkl.txt)
Код
Dim iSource As Range, iFileName
Set iSource = ActiveSheet.Range("A1:D1000")
With Application
iFileName = .GetSaveAsFilename( _
FileFilter:="Text Files (*.txt), *.txt", _
Title:="Выберите имя файла и место для его сохранения")
If iFileName <> False Then
.ScreenUpdating = False
.DisplayAlerts = False '
With .Workbooks.Add(xlWBATWorksheet)
iSource.Copy Destination:=.Worksheets(1).Range("A1")
.Close Filename:=iFileName, saveChanges:=True
End With
.DisplayAlerts = True '
.ScreenUpdating = True
Else
MsgBox "Для сохранения данных неоходимо указать файл", , ""
End If
End With
Option Explicit
Const iFileName As String = "C:\Temp\redkl.txt"
Const rRng As String = "A1:D1000"
Sub abc_xyz()
With Application
.ScreenUpdating = False: .DisplayAlerts = False
Dim iSource As Range
Set iSource = .ThisWorkbook.ActiveSheet.Range(rRng)
.Workbooks.Add (xlWBATWorksheet)
iSource.Copy .ActiveWorkbook.Worksheets(1).Range("A1")
Set iSource = Nothing
.ActiveWorkbook.SaveAs iFileName, xlText ', Local:=True
.ActiveWorkbook.Close False
.DisplayAlerts = True: .ScreenUpdating = True
End With
End Sub
Помогите пожалуйста еще загнать в цикл. Т.е. Range("C1") = 1, должен быть сперва 1, потом 100, 200, 300 и т.д., а название файла соответствовать этому значению. И нужно подождать пока производится расчет после заполнения C1:C99. Возможно Wait не совсем корректно
Код
Const iFileName As String = "D:\1.txt"
Const rRng As String = "A1:B99"
Range("C1") = 1
Range("C1:C99").DataSeries Step:=1
Application.Wait (Now + TimeValue("00:00:03"))
With Application
.ScreenUpdating = False: .DisplayAlerts = False
Dim iSource As Range
Set iSource = .ThisWorkbook.ActiveSheet.Range(rRng)
.Workbooks.Add (xlWBATWorksheet)
iSource.Copy .ActiveWorkbook.Worksheets(1).Range("A1")
Set iSource = Nothing
.ActiveWorkbook.SaveAs iFileName, xlText ', Local:=True
.ActiveWorkbook.Close False
.DisplayAlerts = True: .ScreenUpdating = True
End With
Еще заметил что сохраняются только данные ячеек. Т.е. если в ячейке стоит ="A"&BE1 в текстовый файл сохраняется только А без результата вычисления формулы