VBA: как сохранить Range в текстовый файл
От: ali2  
Дата: 23.10.09 15:40
Оценка:
Привет всем,

не могу преодолеть следующую проблему: сохраняю диапазон
в файл, но у меня в некоторых ячейках есть двойные кавычки, и эти строки,
во-первых, окружаются кавычками, и во-вторых, имеющиеся кавычки удваиваются,
а мне это не надо.

И ещё.
Я не знаю способа выдачи в файл отдельного диапазона, поэтому поступаю так:
создаю временный лист, на него копирую нужный диапазон, сохраняю лист в файл

ActiveWorkbook.SaveAs Filename:="test_Split.txt", _
FileFormat:=xlText, CreateBackup:=False

а потом этот временный лист удаляю. Но я хочу остаться в своём Excel-файле,
а оказываюсь в сохранённом .txt .

Заранее спасибо за любой совет.
Александр
Re: VBA: как сохранить Range в текстовый файл
От: Vi2 Удмуртия http://www.adem.ru
Дата: 23.10.09 18:16
Оценка:
Здравствуйте, ali2, Вы писали:

A>не могу преодолеть следующую проблему: сохраняю диапазон в файл, но у меня в некоторых ячейках есть двойные кавычки, и эти строки, во-первых, окружаются кавычками, и во-вторых, имеющиеся кавычки удваиваются, а мне это не надо.


A>Заранее спасибо за любой совет.


Можно ручками выводить, например, так:
    Dim r As Range
    
    Set r = ActiveWindow.Selection
    If r Is Nothing Then
        Set r = ActiveSheet.UsedRange
        r.Select
    End If
    
    iPipe = FreeFile()
    Open "test_Split.txt" For Output As #iPipe
        v = r.Value2
        For i = LBound(v, 1) To UBound(v, 1)
            For j = LBound(v, 2) To UBound(v, 2)
                Print #iPipe, v(i, j)
            Next
            Print #iPipe, "---------"
        Next
    Close #iPipe
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re: VBA: как сохранить Range в текстовый файл
От: ali2  
Дата: 23.10.09 19:24
Оценка:
Уже решил проблему
Re[2]: VBA: как сохранить Range в текстовый файл
От: ali2  
Дата: 23.10.09 19:31
Оценка:
Vi2>Можно ручками выводить, например, так:
Vi2>
Vi2>    Dim r As Range
    
Vi2>    Set r = ActiveWindow.Selection
Vi2>    If r Is Nothing Then
Vi2>        Set r = ActiveSheet.UsedRange
Vi2>        r.Select
Vi2>    End If
    
Vi2>    iPipe = FreeFile()
Vi2>    Open "test_Split.txt" For Output As #iPipe
Vi2>        v = r.Value2
Vi2>        For i = LBound(v, 1) To UBound(v, 1)
Vi2>            For j = LBound(v, 2) To UBound(v, 2)
Vi2>                Print #iPipe, v(i, j)
Vi2>            Next
Vi2>            Print #iPipe, "---------"
Vi2>        Next
Vi2>    Close #iPipe
Vi2>


Спасибо, я написал, что решил проблему, не обновив картинку на сайте и не
посмотрев Ваш ответ.

Примерно так и делал, только писал построчно и использовал Put.

С уважением,
Александр
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.