Excel открыть файл для записи

Чтение и запись в файл, открытый с помощью оператора Open. Операторы Input, Line Input, Write и функция EOF. Примеры использования в VBA Excel.

Операторы чтения и записи в файл

Оператор Input #

Оператор Input # считывает данные из открытого файла с последовательным доступом и присваивает эти данные переменным.

Оператор Input # используется только с файлами, открытыми в режиме Input или Binary. При прочтении стандартные строковые или числовые значения присваиваются переменным без изменения.

Синтаксис оператора Input #:

Input #Номер_файла, Переменные

Компоненты оператора Input #:

  • Номер_файла – обязательный параметр, представляющий из себя номер, присвоенный файлу при открытии с помощью оператора Open.
  • Переменные – обязательный параметр, представляющий из себя список переменных, разделенных запятой, которым присваиваются значения, считанные из файла.

Особенности применения оператора Input #:

  • Элементы данных в файле должны быть указаны в том же порядке, что и переменные в списке Переменные, и соответствовать им по типу данных. Если переменная числовая, а данные текстовые, этой переменной будет присвоено нулевое значение.
  • Если при чтении данных достигнут конец файла, чтение прерывается и возникает ошибка. Для ее предупреждения в коде VBA Excel используется функция EOF.
  • Чтобы данные из файла могли быть правильно прочитаны и записаны в переменные с помощью оператора Input #, они должны быть записаны в файл с помощью оператора Write #. Он обеспечивает правильное разделение каждого из полей (элементов) данных.

Оператор Line Input #

Оператор Line Input # считывает одну строку из открытого файла с последовательным доступом и присваивает ее значение строковой переменной.

Оператор Line Input # считывает из файла по одному символу до тех пор, пока не встретится символ возврата каретки (Chr(13)) или последовательность символа возврата каретки и перевода строки (Chr (13) + Chr(10)).

Синтаксис оператора Line Input #:

Line Input #Номер_файла, Переменная

Компоненты оператора Line Input #:

  • Номер_файла – обязательный параметр, представляющий из себя номер, присвоенный файлу при открытии с помощью оператора Open.
  • Переменная – обязательный параметр, представляющий из себя имя переменной, объявленной как String или Variant, которой присваивается строка, считанная из файла.

Оператор Write #

Оператор Write # записывает данные в файл с последовательным доступом.

Синтаксис оператора Write #:

Write #Номер_файла, [Данные]

Компоненты оператора Write #:

  • Номер_файла – обязательный параметр, представляющий из себя номер, присвоенный файлу при открытии с помощью оператора Open.
  • Данные – необязательный параметр, представляющий из себя одно или несколько числовых или строковых выражений, разделенных запятой, которые нужно записать в файл.

Особенности применения оператора Write #:

  • Данные, записанные с помощью оператора Write #, считываются из файла с помощью оператора Input #.
  • Если опустить параметр Данные и добавить запятую после Номер_файла, в файл будет добавлена пустая строка.
  • Несколько выражений в списке Данные могут быть разделены точкой с запятой или запятой.
  • Числовые данные всегда записываются с точкой в качестве разделителя целой и дробной части.
  • Оператор Write # вставляет запятые между элементами и прямые парные кавычки вокруг строк при их записи в файл.
  • После записи в файл последнего символа из параметра Данные оператор Write # вставляет символы возврата каретки и перевода строки (Chr (13) + Chr(10)).

Функция EOF

Функция EOF возвращает логическое значение True, когда достигнут конец файла, открытого для последовательного (Input) или произвольного (Random) доступа.

Синтаксис функции EOF:

Номер_файла – это номер, присвоенный файлу при открытии с помощью оператора Open.

Функция EOF используется для предупреждения ошибок, вызываемых попытками выполнить чтение после конца файла. Она возвращает значение False, пока не будет достигнут конец файла.

Примеры чтения и записи в файл

Пример 1
Открытие (или создание, если он не существует) текстового файла для чтения и записи и запись в него одной строки, состоящей из двух текстовых и одного числового значений. Файл с именем myFile1.txt будет создан в той же папке, где расположен файл Excel с кодом VBA.

Sub Test1()

Dim ff As Integer

‘Получаем свободный номер для открываемого файла

ff = FreeFile

‘Открываем (или создаем) файл для чтения и записи

Open ThisWorkbook.Path & «myFile1.txt» For Output As ff

‘Записываем в файл одну строку

Write #ff, «Дает корова молоко!», _

«Куда идет король?», 25.35847

‘Закрываем файл

Close ff

‘Открываем файл для просмотра

ThisWorkbook.FollowHyperlink (ThisWorkbook.Path & «myFile1.txt»)

End Sub

Строки и число можно предварительно присвоить переменным, объявленным с соответствующими типами данных, и использовать их для записи данных в файл (в строках кода с оператором Write #, как в этом и следующем примерах).

Пример 2
Открытие (или создание, если он не существует) файла без расширения для чтения и записи и запись в него трех строк: двух текстовых и одной в числовом формате. Файл с именем myFile2 будет создан в той же папке, где расположен файл Excel с кодом VBA.

Так как у файла нет расширения, Windows выведет диалоговое окно для выбора открывающей его программы. Выберите любой текстовый редактор или интернет-браузер.

Sub Test2()

Dim ff As Integer

‘Получаем свободный номер для открываемого файла

ff = FreeFile

‘Открываем (или создаем) файл для чтения и записи

Open ThisWorkbook.Path & «myFile2» For Output As ff

‘Записываем в файл три строки

Write #ff, «Дает корова молоко!»

Write #ff, «Куда идет король?»

Write #ff, 25.35847

‘Закрываем файл

Close ff

‘Открываем файл для просмотра

ThisWorkbook.FollowHyperlink (ThisWorkbook.Path & «myFile2»)

End Sub

Пример 3
Считываем строку, разделенную на отдельные элементы, из файла myFile1.txt и записываем в три переменные, по типу данных соответствующие элементам.

Sub Test3()

Dim ff As Integer, str1 As String, _

str2 As String, num1 As Single

‘Получаем свободный номер для открываемого файла

ff = FreeFile

‘Открываем файл myFile1.txt для чтения

Open ThisWorkbook.Path & «myFile1.txt» For Input As ff

‘Считываем строку из файла и записываем в переменные

Input #ff, str1, str2, num1

Close ff

‘Смотрим, что записалось в переменные

MsgBox «str1 = « & str1 & vbNewLine _

& «str2 = « & str2 & vbNewLine _

& «num1 = « & num1

End Sub

Попробуйте заменить в этом примере строку Input #ff, str1, str2, num1 сначала на строку Input #ff, str1, затем на строку Line Input #ff, str1, чтобы наглядно увидеть разницу между операторами Input # и Line Input #.

В следующих примерах (4 и 5) замена оператора Input # на Line Input # не приведет ни к каким изменениям, так как данные в строках файла myFile2 не разделены на элементы (поля).

Пример 4
Считываем поочередно три строки из файла myFile2 и записываем в три элемента массива, объявленного как Variant, так как в этот файл ранее были записаны две строки с текстом и одна с числом.

Sub Test4()

Dim ff As Integer, a(2) As Variant, i As Byte

‘Получаем свободный номер для открываемого файла

ff = FreeFile

‘Открываем файл myFile2 для чтения

Open ThisWorkbook.Path & «myFile2» For Input As ff

‘Считываем строки из файла и записываем в элементы массива

   For i = 0 To 2

      Input #ff, a(i)

   Next

Close ff

‘Смотрим, что записалось в элементы массива

MsgBox «a(0) = « & a(0) & vbNewLine _

& «a(1) = « & a(1) & vbNewLine _

& «a(2) = « & a(2)

End Sub

Пример 5
Считываем с помощью цикла Do While… Loop все строки из файла myFile2 и записываем построчно в переменную, объявленную как String (число из третьей строки запишется как текст). Для остановки цикла при достижении конца файла используем функцию EOF.

Sub Test5()

Dim ff As Integer, a As Variant, b As String

‘Получаем свободный номер для открываемого файла

ff = FreeFile

‘Открываем файл myFile2 для чтения

Open ThisWorkbook.Path & «myFile2» For Input As ff

‘Считываем строки из файла и записываем в элементы массива

   Do While Not EOF(ff)

      Input #ff, a

      b = b & a & vbNewLine

   Loop

Close ff

‘Смотрим, что записалось в переменную

MsgBox b

End Sub


Предыдущая часть темы об открытии файла для ввода и вывода информации опубликована в статье: Оператор Open (синтаксис, параметры). Смотрите также связанную статью: Функция FreeFile.

Смотрите, как создавать и открывать текстовые файлы с помощью методов CreateTextFile и OpenTextFile. Чтение файла, запись и добавление информации с помощью объекта TextStream.


Excel VBA Запись текстового файла

В VBA мы можем открыть, прочитать или записать текстовый файл. Запись текстового файла означает, что данные у нас есть на листе Excel, и мы хотим, чтобы это был текстовый файл или файл блокнота. Поэтому есть два метода: свойство FileSystemObject VBA и метод Open and Write в VBA.

В большинстве корпоративных компаний после завершения отчета они стараются загрузить отчет в базу данных. Они используют формат «текстовые файлы» для обновления базы данных для загрузки в базу данных. Обычно мы копируем данные из Excel и вставляем их в текстовый файл. Мы полагаемся на текстовые файлы, потому что с ними очень легко работать из-за их легкости и простоты. Используя кодирование VBAИспользование кодирования VBAКод VBA представляет собой набор инструкций, написанных пользователем на языке программирования приложений Visual Basic в редакторе Visual Basic (VBE) для выполнения определенной задачи. Подробнее, мы можем автоматизировать задачу копирования данных из файл Excel в текстовый файл. В этой статье показано, как копировать или записывать данные из файла Excel в текстовый файл с помощью кода VBA.

Оглавление

  • Excel VBA Запись текстового файла
    • Как записать данные в текстовые файлы с помощью VBA?
      • Синтаксис открытого текстового файла
      • Пример №1
        • Шаг 1: Объявить переменную
        • Шаг 2: Определите номер файла
        • Шаг 3: Назначьте путь к файлу
        • Шаг 4: Назначьте бесплатную функцию файла
        • Шаг 5: Откройте текстовый файл
        • Шаг 6: Используйте метод печати/записи
        • Шаг 7: Сохраните и закройте текстовый файл
      • Пример #2
    • Рекомендуемые статьи

Текстовый файл записи VBA

Как записать данные в текстовые файлы с помощью VBA?

Запись данных из Excel в текст сложна и требует очень хороших знаний кодирования VBA. Выполните следующие шаги, чтобы написать код VBA для копирования dataWrite Код VBA для копирования DataFile Copy — это встроенная функция VBA, которая используется для копирования файла из одного места в другое. Чтобы использовать эту функцию, мы должны указать текущий путь к файлу, а также путь к файлу назначения. читать больше из Excel в текстовый файл.

Прежде чем мы покажем вам, как писать код, позвольте мне объяснить, как открыть текстовый файл с помощью оператора open.

Синтаксис открытого текстового файла

Открыть [File Path]Для [Mode]Как [File Number]

Путь к файлу: Путь к файлу, который мы пытаемся открыть на компьютере.

Режим: Режим — это контроль, который мы можем иметь при открытии текстовых файлов. У нас может быть три типа контроля над текстовым файлом.

  • Режим ввода: Это предполагает управление открывающимся текстовым файлом только для чтения. Если мы используем «Режим ввода», мы ничего не можем сделать с файлом. Вместо этого мы можем просто прочитать содержимое текстового файла.
  • Режим вывода: Мы можем написать содержание на этой опции. Мы должны помнить, что он перезапишет все существующие данные. Итак, мы должны опасаться возможной потери старых данных.
  • Режим добавления: Этот режим полностью противоположен Выходной режим. Используя этот метод, мы можем записать новые данные в конец существующих данных в файле.

Номер дела: Это подсчитает количество текстовых файлов всех открытых текстовых файлов. Он распознает открытые номера файлов в виде целых чисел от 1 до 511. Однако присвоение номера файла сложно и приводит к путанице. Для этого мы можем использовать бесплатную функцию File.

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

.free_excel_div{фон:#d9d9d9;размер шрифта:16px;радиус границы:7px;позиция:относительная;margin:30px;padding:25px 25px 25px 45px}.free_excel_div:before{content:»»;фон:url(центр центр без повтора #207245;ширина:70px;высота:70px;позиция:абсолютная;верх:50%;margin-top:-35px;слева:-35px;граница:5px сплошная #fff;граница-радиус:50%} Вы можете скачать этот шаблон текстового файла записи VBA здесь — Шаблон текстового файла записи VBA

Пример №1

Выполните следующие шаги, чтобы написать код для создания нового текстового файла.

Предположим, у вас уже есть текстовый файл с именем «Hello.txt» в памяти вашего компьютера, и мы покажем вам, как записать в него данные.

Шаг 1: Объявить переменную

Объявите переменную для хранения пути к файлу как строку.

Код:

Sub TextFile_Example1 () Dim Path As String End Sub

Пример записи текста VBA 1-1Шаг 2: Определите номер файла

Чтобы определить, на какой номер файла мы ссылаемся, объявите еще одну переменную как IntegerVariable. Поскольку IntegerIn VBA целое число — это тип данных, который может быть присвоен любой переменной и использоваться для хранения целочисленных значений. В VBA скобка для максимального числа целочисленных переменных, которые можно сохранить, аналогична скобке в других языках. Используя оператор DIM, любую переменную можно определить как целочисленную переменную.Подробнее.

Код:

Sub TextFile_Example1() Dim Path As String Dim FileNumber As Integer End Sub

Пример записи текста VBA 1-2Шаг 3: Назначьте путь к файлу

Теперь назначьте путь к файлу с именем для переменной Path.

Код:

Sub TextFile_Example1() Dim Path As String Dim FileNumber As Integer Path = «D:Excel FilesVBA FileHello.txt» ‘Измените путь в соответствии с вашими требованиями End Sub

Пример записи текста VBA 1-3Шаг 4: Назначьте бесплатную функцию файла

Теперь назначьте функцию «Свободный файл» для хранения уникальных номеров файлов для переменной «Номер файла».

Код:

Sub TextFile_Example1() Dim Path As String Dim FileNumber As Integer Path = «D:Excel FilesVBA FileHello.txt» ‘Измените путь в соответствии с вашими требованиями FileNumber = FreeFile End Sub

Пример записи текста VBA 1-4Шаг 5: Откройте текстовый файл

Теперь нам нужно открыть текстовый файл, чтобы работать с ним. Как мы объяснили, нам нужно использовать оператор OPEN, чтобы открыть текстовый файл.

Пример 1-5
Шаг 6: Используйте метод печати/записи

Как только файл откроется, нам нужно что-то в нем написать. Нам нужен метод «Запись» или «Печать» для записи в текстовый файл.

Код:

Sub TextFile_Example1() Dim Path As String Dim FileNumber As Integer Path = «D:Excel FilesVBA FileHello.txt» ‘Измените путь в соответствии с вашими требованиями FileNumber = FreeFile Open Path For Output As FileNumber Print #FileNumber, «Welcome» Print #FileNumber , «to» Print #FileNumber, «VBA» End Sub

Пример 1-6

Во-первых, нам нужно указать номер файла (здесь мы присвоили файлу переменную «FileNumber»), затем нам нужно добавить содержимое, которое мы хотим добавить в текстовый файл.

Шаг 7: Сохраните и закройте текстовый файл

Как только мы запишем содержимое в текстовый файл, нам нужно сохранить и закрыть текстовый файл.

Код:

Sub TextFile_Example1() Dim Path As String Dim FileNumber As Integer Path = «D:Excel FilesVBA FileHello.txt» ‘Измените путь в соответствии с вашими требованиями FileNumber = FreeFile Open Path For Output As FileNumber Print #FileNumber, «Welcome» Print #FileNumber , «to» Print #FileNumber, «VBA» Close FileNumber End Sub

Пример 1-7

Теперь запустите код вручную или с помощью сочетания клавиш Excel. Ярлык Excel. Ярлык Excel — это метод выполнения ручного задания более быстрым способом. Подробнее F5. Он запишет указанный контент в указанный текстовый файл.

Пример записи текста VBA 1-8Пример #2

Теперь мы увидим, как записать данные листа Excel в текстовый файл.

Для этого примера мы создали простые данные в Excel, как показано ниже.

Пример записи текста VBA 1

Шаг 1: Продолжая старый пример, определите еще две переменные как Integer, чтобы найти последнюю строку и последний столбец.

Код:

Sub TextFile_Example2() Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer End Sub

Пример записи текста VBA 2

Шаг 2: Найдите последнюю использованную строку и столбец на листе.

Пример записи текста VBA 2-1

Шаг 3: Теперь назначьте путь к файлу и номер файла.

Пример записи текста VBA 2-2

Шаг 4: Используйте оператор OPEN, чтобы открыть текстовый файл.

Пример записи текста VBA 2-3

Шаг 5: Нам нужно перебирать строки и столбцы, поэтому объявите еще две переменные как Integer.

Пример записи текста VBA 2-4

Шаг 6: Теперь откройте цикл, чтобы перебрать строку (для следующего цикла в VBAFor Next Loop В VBAВсе языки программирования используют цикл For Next в VBA. После оператора FOR в этом цикле есть критерий, и код повторяется до тех пор, пока не критерии достигнуты. читать дальше)

Пример записи текста VBA 2-5

Шаг 7: Чтобы выполнить цикл по столбцам, откройте еще один цикл внутри существующего цикла.

Пример записи текста VBA 2-6

Шаг 8: Нам нужно писать одну и ту же строку данных, пока она не достигнет последнего столбца. Поэтому для этого примените оператор IF в VBA.

Пример 2-7

Шаг 9: Теперь сохраните и закройте текстовый файл.

Пример 2-8

Этот код запишет данные в текстовый файл, но чтобы открыть текстовый файл после записи, нам нужно использовать приведенный ниже код.

Пример 2-9

Код:

Sub TextFile_Example2() Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer Dim k As Integer Dim i As Integer LR = Worksheets(«Text»).Cells(Rows.Count, 1).End(xlUp) .Row LC = Рабочие листы («Текст»). Ячейки (1, Столбцы. Количество). Конец (xlToLeft). Путь к столбцу = «D: Excel FilesVBA FileHello.txt» FileNumber = FreeFile Открытый путь для вывода в виде FileNumber For k = 1 В LR Для i = 1 В LC Если i <> LC Затем напечатать #FileNumber, Cells(i, k), иначе Напечатать #FileNumber, Cells(i, k) End If Next i Next k Закрыть FileNumber Shell «notepad.exe » & Путь, vbNormalFocus End Sub

Итак, запускаем код с помощью клавиши F5 или вручную. Затем он скопирует данные ниже.

Пример записи текста VBA 2-10

Рекомендуемые статьи

Эта статья представляет собой руководство по записи текстового файла VBA. Здесь мы узнаем, как копировать/записывать данные с рабочего листа в текстовый файл с практическими примерами и загружаемым шаблоном. Ниже вы можете найти несколько полезных статей по Excel VBA:

  • VBA Подождите
  • Диалоговое окно файла VBA
  • Функция InStr VBA

Импорт и экспорт текстовых файлов (в формате TXT или CSV)

Импортировать данные из текстового файла в Excel можно двумя способами: открыть их в Excel или импортировать как диапазон внешних данных. Чтобы экспортировать данные из Excel в текстовый файл, воспользуйтесь командой Сохранить как и измените тип файла в меню.

Чаще всего используются два формата текстовых файлов:

  • текстовые файлы с разделителями (TXT), в которых для разделения полей текста обычно используется знак табуляции (знак ASCII с кодом 009);

  • текстовые файлы с разделителями-запятыми (CSV), в которых в качестве разделителя полей текста обычно используется запятая (,).

Вы можете изменить знак разделения, используемый в TXT- и CSV-файлах. Это может потребоваться для обеспечения успешного выполнения импорта и экспорта.

Примечание: Можно импортировать и экспортировать до 1 048 576 строк и 16 384 столбцов.

Импорт текстового файла путем его открытия в Excel

Текстовый файл, созданный в другой программе, можно открыть как книгу Excel с помощью команды Открыть. При открытии текстового файла в Excel его формат не изменяется — это можно заметить по заголовку окна Excel, где имя указывается с расширением текстового файла (например, TXT или CSV).

  1. Перейдите в >открыть и перейдите в папку с текстовым файлом.

  2. В диалоговом окне Открытие выберите текстовые файлы в списке тип файла.

  3. Найдите нужный файл и дважды щелкните его.

    • Если это текстовый файл (с расширением ТХТ), запустится мастер импорта текста. Окончив работу с мастером, нажмите кнопку Готово, чтобы завершить импорт. Дополнительные сведения о разных вариантах и дополнительных параметрах см. в мастере импорта текста.

    • Если файл имеет расширение CSV, Excel автоматически откроет его и отобразит данные в новой книге.

      Примечание: При открытии CSV-файлов для определения способа импорта каждого столбца используются заданные по умолчанию параметры форматирования данных. Если вы хотите применить другие параметры, используйте мастер импорта текста. Например, мастер потребуется, если столбец данных в CSV-файле имеет формат МДГ, а в Excel по умолчанию используется формат ГМД или необходимо преобразовать в текст столбец чисел, содержащих начальные нули, чтобы сохранить их. Чтобы принудительно запустить мастер импорта текста, можно изменить расширение имени файла с CSV на TXT или импортировать текстовый файл путем подключения к нем (дополнительные сведения см. в следующем разделе).

Импорт текстового файла путем подключения к нем (Power Query)

Вы можете импортировать данные из текстового файла в существующий.

  1. На вкладке Данные в группе & преобразование данных выберите из текстового/CSV-документа.

  2. В диалоговом окне Импорт данных найдите и дважды щелкните текстовый файл, который нужно импортировать,и нажмите кнопку Импорт.

  3. В диалоговом окне предварительного просмотра есть несколько вариантов:

    • Выберите Загрузить, если вы хотите загрузить данные непосредственно на новый.

    • Кроме того, выберите загрузить в, если вы хотите загрузить данные в таблицу, в смету или на существующий или новый листа Excel, или просто создать подключение. Вы также можете добавить данные в модель данных.

    • Выберите Преобразовать данные, если вы хотите загрузить данные в Power Query и отредактировать их перед их преобразованием в Excel.

Если Excel не преобразует определенный столбец данных в нужный формат, их можно преобразовать после импорта. Дополнительные сведения см. в статьях Преобразование чисел из текстового формата в числовой и Преобразование дат из текстового формата в формат даты.

Экспорт данных в текстовый файл путем его сохранения

Лист Excel можно преобразовать в текстовый файл, используя команду Сохранить как.

  1. Выберите Файл > Сохранить как.

  2. Нажмите кнопку Обзор.

  3. В диалоговом окне Сохранить как в поле Тип файла выберите формат текстового файла для этого документа. Например, щелкните Текст (с табу женой) или CSV (сзапятой).

    Примечание: Различные форматы текстовых файлов поддерживают разные возможности. Дополнительные сведения см. в статье Поддерживаемые Excel форматы файлов.

  4. Перейдите в папку, куда вы хотите сохранить файл, а затем нажмите кнопку Сохранить.

  5. Откроется диалоговое окно с напоминанием о том, что в текстовом файле будет сохранен только текущий лист. Если вы хотите сохранить именно текущий лист, нажмите кнопку ОК. Другие листы можно сохранить в отдельных текстовых файлах, повторив эту процедуру для каждого из них.

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

Дополнительные сведения о сохранении файлов в других форматах см. в статье Сохранение книги в другом формате файла.

Импорт текстового файла путем подключения к нему

Вы можете импортировать данные из текстового файла в существующий.

  1. Щелкните ячейку, в которую вы хотите поместить данные из текстового файла.

  2. На вкладке Данные в группе Получение внешних данных нажмите Из текста.

  3. В диалоговом окне Импорт данных найдите и дважды щелкните текстовый файл, который нужно импортировать,и нажмите кнопку Импорт.

    Следуйте инструкциям мастера импорта текста. Щелкните Кнопка на любой странице мастера импорта текста, чтобы получить дополнительные сведения об использовании мастера. Окончив работу с мастером, нажмите кнопку Готово, чтобы завершить импорт.

  4. В диалоговом окне Импорт данных:

    1. В группе Куда следует поместить данные? выполните одно из следующих действий:

      • Чтобы поместить данные в выбранные ячейки, щелкните На существующий лист.

      • Чтобы поместить данные в верхний левый угол нового листа, выберите вариант На новый лист.

    2. При необходимости нажмите кнопку Свойства, чтобы задать параметры обновления, форматирования и макета импортируемых данных.

    3. Нажмите кнопку ОК.

      Excel добавит диапазон внешних данных в указанное место.

Если Excel не преобразует столбец в необходимый формат, это можно сделать после импорта. Дополнительные сведения см. в статьях Преобразование чисел из текстового формата в числовой и Преобразование дат из текстового формата в формат даты.

Экспорт данных в текстовый файл путем его сохранения

Лист Excel можно преобразовать в текстовый файл, используя команду Сохранить как.

  1. Выберите Файл > Сохранить как.

  2. Откроется диалоговое окно Сохранение документа.

  3. В поле Тип файла выберите формат текстового файла для листа.

    • Например, выберите Текстовые файлы (с разделителями табуляции) или CSV (разделители — запятые).

    • Примечание: Различные форматы текстовых файлов поддерживают разные возможности. Дополнительные сведения см. в статье Поддерживаемые Excel форматы файлов.

  4. Перейдите в папку, куда вы хотите сохранить файл, а затем нажмите кнопку Сохранить.

  5. Откроется диалоговое окно с напоминанием о том, что в текстовом файле будет сохранен только текущий лист. Если вы хотите сохранить именно текущий лист, нажмите кнопку ОК. Другие листы можно сохранить в отдельных текстовых файлах, повторив эту процедуру для каждого из них.

  6. Откроется второе диалоговое окно с напоминанием о том, что сохраняемый лист может содержать возможности, которые не поддерживаются текстовыми форматами файлов. Если в новом текстовом файле нужно сохранить только данные листа, нажмите кнопку Да. Если вы не уверены и хотите получить дополнительные сведения о том, какие возможности Excel не поддерживаются форматами текстовых файлов, нажмите кнопку Справка.

Дополнительные сведения о сохранении файлов в других форматах см. в статье Сохранение книги в другом формате файла.

Способ изменения деления при импорте зависит от того, как вы импортируете текст.

  • Если вы используете get & Transform Data > From Text/CSV, после выбора текстового файла и нажатия кнопки Импорт выберитесимвол, который нужно использовать в списке …. Новый вариант можно сразу же увидеть в окне предварительного просмотра данных, чтобы убедиться в том, что вы сделаете нужный вариант, прежде чем продолжить.

  • Если вы импортируете текстовый файл с помощью мастера импорта текста, вы можете изменить его на шаге 2 мастера импорта текста. На этом шаге также можно изменить способ обработки последовательных разделителей (например, идущих подряд кавычек).

    Дополнительные сведения о разных вариантах и дополнительных параметрах см. в мастере импорта текста.

Если при сохранение в CSV-окне вы хотите использовать в качестве по умолчанию полу двоеточие, но для этого нужно ограничиться Excel, измените десятичной запятой. В этом случае Excel будет использовать для этого двоеточие. Очевидно, что это также изменит способ отображения десятичных чисел, поэтому также рассмотрите возможность изменения разграничения чисел в тысячах, чтобы сузить путаницу.

  1. Очистка параметров Excel> Дополнительные>параметры редактирования> Использование системных междугов.

  2. Для десятичной запятой установитедля десятичной запятой (запятую).

  3. Установите для 1000-го построитель. (точка).

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

Внимание: Изменение параметров Windows приведет к глобальным изменениям на компьютере и повлияет на все приложения. Чтобы изменить только делитель для Excel, см. изменение стандартного деления в списке для сохранения файлов в виде текста (CSV- или CSV-файла) в Excel.

  1. В Microsoft Windows 10 щелкните правой кнопкой мыши кнопку Начните и выберите параметры.

  2. Нажмите кнопку & языки выберите регион в левой области.

  3. На главной панели в группе Региональные параметрыщелкните Дополнительные параметры даты,времени и региона.

  4. В областивыберите изменить форматы даты, времени или числа.

  5. В диалоговом окке Регион на вкладке Формат нажмите кнопку Дополнительные параметры.

  6. В диалоговом окне Настройка формата на вкладке Числа введите символ, который будет использовать в качестве нового в поле «Сепаратор списков».

  7. Дважды нажмите кнопку ОК.

  1. Нажмите кнопку Пуск и выберите пункт Панель управления.

  2. В разделе Часы, язык и регион щелкните элемент Изменение форматов даты, времени и чисел.

  3. В диалоговом окке Регион на вкладке Формат нажмите кнопку Дополнительные параметры.

  4. В диалоговом окне Настройка формата на вкладке Числа введите символ, который будет использовать в качестве нового в поле «Список».

  5. Дважды нажмите кнопку ОК.

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

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

См. также

Импорт данных из внешних источников (Power Query)

Нужна дополнительная помощь?

Владимир23

5 / 5 / 4

Регистрация: 01.11.2009

Сообщений: 576

1

Открыть файл для записи

31.03.2016, 13:31. Показов 3663. Ответов 7

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Добрый день.
Подскажите как правильно открыть файл, вставить в него данные, сохранить и закрыть.
Файл будет открываться из цикла в процедуре, я пока хочу отдельно действие произвести.
Нашел как открывать, но не пойму как обращаться к данным этого файла, получить данные, записать в ячейку, сохранить и закрыть…

Visual Basic
1
2
3
4
5
6
7
8
9
Sub eee()
'   Открываем книгу
Dim Catalog
Dim Name
    Catalog = "C:UsersU_240J4DesktopГенераторBAK_BIK" & ""
    Name = "Реестр67 31-03-2016 15-56-06.xls"
    Workbooks.Open Filename:=Catalog & Name
    
    End Sub



0



Hugo121

6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

31.03.2016, 13:43

2

1. Name — это оператор VBA, не используйте как имя переменной.
2. «как обращаться к данным этого файла, получить данные, записать в ячейку, сохранить и закрыть» — подскажет рекордер.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub eee()
'   Открываем и сохраняем книгу
Dim Catalog
Dim Name_
 
    Catalog = "C:UsersU_240J4DesktopГенераторBAK_BIK"
    Name_ = "Реестр67 31-03-2016 15-56-06.xls"
    
   With Workbooks.Open(Catalog & Name)
   .Sheets(1).Range("A1").Value = "test"
   .Close True
   End With
    
End Sub



0



5 / 5 / 4

Регистрация: 01.11.2009

Сообщений: 576

31.03.2016, 13:48

 [ТС]

3

Цитата
Сообщение от Hugo121
Посмотреть сообщение

Visual Basic

End With
End Sub

ошибка 400…слеша нет



0



31 / 27 / 11

Регистрация: 15.07.2015

Сообщений: 85

31.03.2016, 13:51

4

Цитата
Сообщение от Владимир23
Посмотреть сообщение

ошибка 400

Цитата
Сообщение от Hugo121
Посмотреть сообщение

Catalog = «C:UsersU_240J4DesktopГенераторBAK_BIK»

Слеш пропущен, в итоге путь к книге получается: «C:UsersU_240J4DesktopГенераторBAK_BIKРеестр6 7 31-03-2016 15-56-06.xls»



0



Владимир23

5 / 5 / 4

Регистрация: 01.11.2009

Сообщений: 576

31.03.2016, 13:55

 [ТС]

5

наверное так?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub eee()
'   Открываем и сохраняем книгу
Dim Catalog
Dim Name_
 
    Catalog = "C:UsersU_240J4DesktopГенераторBAK_BIK"
    Name_ = "Реестр67 31-03-2016 15-56-06.xls"
 
 
   With Workbooks.Open(Catalog & "" & Name_)
   .Sheets(1).Range("A1").Value = "test"
   .Close True
   End With
    
End Sub



0



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

31.03.2016, 13:59

6


забыл что форум слэши ест… пооптимизировал
Ну Вы поняли — просто добавьте в конец слэш, зачем его через амперсанд клеить, если путь вручную прописываете?



0



Владимир23

5 / 5 / 4

Регистрация: 01.11.2009

Сообщений: 576

01.04.2016, 07:00

 [ТС]

7

Цитата
Сообщение от Hugo121
Посмотреть сообщение

забыл что форум слэши ест… пооптимизировал
Ну Вы поняли — просто добавьте в конец слэш, зачем его через амперсанд клеить, если путь вручную прописываете?

у меня только лист в открываемом называется «Реестр67», может тогда

Visual Basic
1
2
3
4
With Workbooks.Open(Catalog & "" & Name_)
   .Sheets("Реестр67").Range("A1").Value = "test"
   .Close True
   End With

Добавлено через 33 минуты
все равно ошибка 400

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub eee()
'   Открываем и сохраняем книгу
Dim Catalog
Dim Name_
 
    Catalog = "C:UsersU_240J4DesktopГенераторBAK_BIK"
    Name_ = "Реестр67 31-03-2016 15-56-06.xls"
 
   With Workbooks.Open(Catalog & Name_)
   .Sheets(1).Range("A1").Value = "test"   '"Реестр67"
   .Close True
   End With
    
End Sub

делал и Sheets(1) и Sheets(«Реестр67»)
путь Catalog & Name_ формируется правильно

Добавлено через 1 час 21 минуту
ошибка была из-за пробелов в имени файла…



0



Владимир23

5 / 5 / 4

Регистрация: 01.11.2009

Сообщений: 576

04.04.2016, 12:30

 [ТС]

8

помогите дописать цикл — нужно дописать в файлы по 1 строке из основного.
т.е. у меня генерятся файлы по данным листа, в листе 751 записей, нужно сделать 7 файлов, после их генерации остается некое количество записей, которые не вошли в файлы, мне нужно их раскидать по файлам.
я открываю каждый файл в With, и тут мне нужно в 1 файл записать 1 запись из неиспользованного диапазона, во 2 файл записать 2 запись и т.д.
Как лучше сделать, мне видется только через for, vba знаю плохо.

Кликните здесь для просмотра всего текста

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
                    For i = n1 To D_end Step Count_str_v_it
                                Worksheets(Type_reestr).Range(Worksheets(Type_reestr).Cells(i, 1), _
                                Worksheets(Type_reestr).Cells(i + Count_str_v_it - 1, 7)).Copy
                               
                                Sheets.Add(, Sheets(Sheets.Count)).Name = Type_reestr & i
                                Worksheets(Type_reestr & i).Paste
        
    
                            '    Подготавливаем данные для генерации файла
                                            Dim Arr
                                            Dim Headers
                                            Dim F_name
                                            F_name = "Реестр"
                                            Arr = Worksheets(Type_reestr & i).Range("A1:G" & D_end).Value
                                            Headers = Array("Тип", "DPD", "Регион", "ID клиента", "Имя", "Отчество", "Фамилия", "Код ручного обзвона")
                            
                                            SaveArray Arr, Headers, folder, F_name & "_" & i ' создаём из массива Arr файл Excel с именем СКЛАД
                                            
                            '   Добавление оставшихся записей
                                
 
                                    'Workbooks.Open Filename:=folder & "" & F_name & "_" & i & "_" & Format(Now, "dd-mm-yyyy") & ".xls"
 
                                               With Workbooks.Open(folder & "" & F_name & "_" & i & "_" & Format(Now, "dd-mm-yyyy") & ".xls")
                                                    '.Sheets(1).Range("A15").Value = "Дописываем"   '"Реестр67"
 
                                                     Dim Start_row_r
                                                                                                  
                                                     Start_row_r = D_end + 1 ' Начало диапазона неиспользованных строк из основного файла
                                                     'Count_str = Конец диапазона неиспользованных строк из основного файла
                                                     
                                                     Dim Last_row
                                                     Dim Next_row
                                                     Last_row = .Sheets(1).Cells(.Sheets(1).Rows.Count, 3).End(xlUp).Row ' Последняя заполненная строка в сгенерированном файле
                                                     ' Строка для записи данных
                                                     Next_row = Last_row + 1
                                                     '  Записываем в файл
                                                     '.Sheets(1).Range("A16").Value = "Начало диапазона:" & Start_row
                                                     '.Sheets(1).Range("A" & Next_row).Value = "Данные из Бик_Бак"
                                                     'Worksheets(Type_reestr).Range("A1:G" & D_end).Value
                                                     
                                                         For i = Start_row_r To Count_str Step 1
    '                                                     '  Копируем
                                                 
                                                            .Sheets(1).Range("A" & Next_row).Value = Worksheets(Type_reestr).Range("A1:G" & D_end).Value
                                                        
                                                         Next
                                                     
                                                    .Close True
                                                    End With
                                                    
                            '    Отключаем уведомления
                                        Application.DisplayAlerts = False
                            '    Удаляем листы
                                        Worksheets(Type_reestr & i).Delete
    
                      Next



0



This VBA Program reads an Excel Range (Sales Data) and write to a Text file (Sales.txt)

Excel VBA code to read data from an Excel file (Sales Data – Range “A1:E26”).  Need two “For loop” for rows and columns. Write each value with a comma in the text file till the end of columns (write without comma only the last column value). Do the above step until reach the end of rows. 

Sales Data in Excel: 5 columns and 25 rows

Sales Data

VBA code to create a text file as below

VBA Code:

  • Declaring Variables :  
Variable Data Type Comments
myFileName  String Output text file (Full path with file name)
rng Range Excel range to read 
cellVal Variant Variable to assign each cell value
row Integer Iterate rows
col Integer Iterate columns
'Variable declarations
Dim myFileName As String, rng As Range, cellVal As Variant, row As Integer, col As Integer
  • Initialize variables:
    • myFileName: The file name with the full path of the output text file
    • rng: Excel range to read data from an excel.
'Full path of the text file
myFileName = "D:ExcelWriteTextsales.txt"
'Data range need to write on text file
Set rng = ActiveSheet.Range("A1:E26")

Open the output text file and assign a variable “#1”

'Open text file
Open myFileName For Output As #1

‘Nested loop to iterate both rows and columns of a given range eg: “A1:E26” [5 columns and 26 rows]

'Number of Rows
For row = 1 To rng.Rows.Count
   'Number of Columns
   For col = 1 To rng.Columns.Count

Assign the value to variable cellVal 

cellVal = rng.Cells(row, col).Value

Write cellVal with comma.  If the col is equal to the last column of a row.  write-only value without the comma.

'write cellVal on text file
    If col = rng.Columns.Count Then
        Write #1, cellVal 
    Else
        Write #1, cellVal, 
    End If

Close both for loops

   Next col
Next row

Close the file

Close #1

Approach:

Step 1: Add a shape (Create Text File) to your worksheet 

Step 2: Right-click on “Create a Text file” and “Assign Macro..”

Step 3: Select MacroToCreateTextFile

Step 4: Save your excel file as “Excel Macro-Enabled Workbook”  *.xlsm

Step 5: Click “Create Text file

Понравилась статья? Поделить с друзьями:
  • Excel открыть с помощью не открывает
  • Excel открыть по ссылке в ячейке
  • Excel открыть окно с файлами
  • Excel открыть на панели задач
  • Excel открыть модуль листа в excel