Страницы: 1
RSS
VBA FileFilter поправить для записи Текстового файла с табуляцией
 
Доброго времени суток форумчане! Помогите пожалуйста поправить код для записи файла в формате 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
Изменено: issah - 25.10.2019 23:21:44
 
Пожалуйста попробуйте:
Код
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
 
ocet p, Гигантское спасибо!
 
Помогите пожалуйста еще загнать в цикл. Т.е. 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
Изменено: issah - 26.10.2019 10:58:24
 
Еще заметил что сохраняются только данные ячеек. Т.е. если в ячейке стоит ="A"&BE1 в текстовый файл сохраняется только А без результата вычисления формулы
Страницы: 1
Наверх