Чтение и запись в файл, открытый с помощью оператора 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
Шаг 2: Определите номер файла
Чтобы определить, на какой номер файла мы ссылаемся, объявите еще одну переменную как IntegerVariable. Поскольку IntegerIn VBA целое число — это тип данных, который может быть присвоен любой переменной и использоваться для хранения целочисленных значений. В VBA скобка для максимального числа целочисленных переменных, которые можно сохранить, аналогична скобке в других языках. Используя оператор DIM, любую переменную можно определить как целочисленную переменную.Подробнее.
Код:
Sub TextFile_Example1() Dim Path As String Dim FileNumber As Integer End Sub
Шаг 3: Назначьте путь к файлу
Теперь назначьте путь к файлу с именем для переменной Path.
Код:
Sub TextFile_Example1() Dim Path As String Dim FileNumber As Integer Path = «D:Excel FilesVBA FileHello.txt» ‘Измените путь в соответствии с вашими требованиями End Sub
Шаг 4: Назначьте бесплатную функцию файла
Теперь назначьте функцию «Свободный файл» для хранения уникальных номеров файлов для переменной «Номер файла».
Код:
Sub TextFile_Example1() Dim Path As String Dim FileNumber As Integer Path = «D:Excel FilesVBA FileHello.txt» ‘Измените путь в соответствии с вашими требованиями FileNumber = FreeFile End Sub
Шаг 5: Откройте текстовый файл
Теперь нам нужно открыть текстовый файл, чтобы работать с ним. Как мы объяснили, нам нужно использовать оператор OPEN, чтобы открыть текстовый файл.
Шаг 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
Во-первых, нам нужно указать номер файла (здесь мы присвоили файлу переменную «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
Теперь запустите код вручную или с помощью сочетания клавиш Excel. Ярлык Excel. Ярлык Excel — это метод выполнения ручного задания более быстрым способом. Подробнее F5. Он запишет указанный контент в указанный текстовый файл.
Пример #2
Теперь мы увидим, как записать данные листа Excel в текстовый файл.
Для этого примера мы создали простые данные в Excel, как показано ниже.
Шаг 1: Продолжая старый пример, определите еще две переменные как Integer, чтобы найти последнюю строку и последний столбец.
Код:
Sub TextFile_Example2() Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer End Sub
Шаг 2: Найдите последнюю использованную строку и столбец на листе.
Шаг 3: Теперь назначьте путь к файлу и номер файла.
Шаг 4: Используйте оператор OPEN, чтобы открыть текстовый файл.
Шаг 5: Нам нужно перебирать строки и столбцы, поэтому объявите еще две переменные как Integer.
Шаг 6: Теперь откройте цикл, чтобы перебрать строку (для следующего цикла в VBAFor Next Loop В VBAВсе языки программирования используют цикл For Next в VBA. После оператора FOR в этом цикле есть критерий, и код повторяется до тех пор, пока не критерии достигнуты. читать дальше)
Шаг 7: Чтобы выполнить цикл по столбцам, откройте еще один цикл внутри существующего цикла.
Шаг 8: Нам нужно писать одну и ту же строку данных, пока она не достигнет последнего столбца. Поэтому для этого примените оператор IF в VBA.
Шаг 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. Здесь мы узнаем, как копировать/записывать данные с рабочего листа в текстовый файл с практическими примерами и загружаемым шаблоном. Ниже вы можете найти несколько полезных статей по 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).
-
Перейдите в >открыть и перейдите в папку с текстовым файлом.
-
В диалоговом окне Открытие выберите текстовые файлы в списке тип файла.
-
Найдите нужный файл и дважды щелкните его.
-
Если это текстовый файл (с расширением ТХТ), запустится мастер импорта текста. Окончив работу с мастером, нажмите кнопку Готово, чтобы завершить импорт. Дополнительные сведения о разных вариантах и дополнительных параметрах см. в мастере импорта текста.
-
Если файл имеет расширение CSV, Excel автоматически откроет его и отобразит данные в новой книге.
Примечание: При открытии CSV-файлов для определения способа импорта каждого столбца используются заданные по умолчанию параметры форматирования данных. Если вы хотите применить другие параметры, используйте мастер импорта текста. Например, мастер потребуется, если столбец данных в CSV-файле имеет формат МДГ, а в Excel по умолчанию используется формат ГМД или необходимо преобразовать в текст столбец чисел, содержащих начальные нули, чтобы сохранить их. Чтобы принудительно запустить мастер импорта текста, можно изменить расширение имени файла с CSV на TXT или импортировать текстовый файл путем подключения к нем (дополнительные сведения см. в следующем разделе).
-
Импорт текстового файла путем подключения к нем (Power Query)
Вы можете импортировать данные из текстового файла в существующий.
-
На вкладке Данные в группе & преобразование данных выберите из текстового/CSV-документа.
-
В диалоговом окне Импорт данных найдите и дважды щелкните текстовый файл, который нужно импортировать,и нажмите кнопку Импорт.
-
В диалоговом окне предварительного просмотра есть несколько вариантов:
-
Выберите Загрузить, если вы хотите загрузить данные непосредственно на новый.
-
Кроме того, выберите загрузить в, если вы хотите загрузить данные в таблицу, в смету или на существующий или новый листа Excel, или просто создать подключение. Вы также можете добавить данные в модель данных.
-
Выберите Преобразовать данные, если вы хотите загрузить данные в Power Query и отредактировать их перед их преобразованием в Excel.
-
Если Excel не преобразует определенный столбец данных в нужный формат, их можно преобразовать после импорта. Дополнительные сведения см. в статьях Преобразование чисел из текстового формата в числовой и Преобразование дат из текстового формата в формат даты.
Экспорт данных в текстовый файл путем его сохранения
Лист Excel можно преобразовать в текстовый файл, используя команду Сохранить как.
-
Выберите Файл > Сохранить как.
-
Нажмите кнопку Обзор.
-
В диалоговом окне Сохранить как в поле Тип файла выберите формат текстового файла для этого документа. Например, щелкните Текст (с табу женой) или CSV (сзапятой).
Примечание: Различные форматы текстовых файлов поддерживают разные возможности. Дополнительные сведения см. в статье Поддерживаемые Excel форматы файлов.
-
Перейдите в папку, куда вы хотите сохранить файл, а затем нажмите кнопку Сохранить.
-
Откроется диалоговое окно с напоминанием о том, что в текстовом файле будет сохранен только текущий лист. Если вы хотите сохранить именно текущий лист, нажмите кнопку ОК. Другие листы можно сохранить в отдельных текстовых файлах, повторив эту процедуру для каждого из них.
Кроме того, под лентой может появиться предупреждение о том, что некоторые возможности могут быть потеряны при сохранение книги в формате CSV.
Дополнительные сведения о сохранении файлов в других форматах см. в статье Сохранение книги в другом формате файла.
Импорт текстового файла путем подключения к нему
Вы можете импортировать данные из текстового файла в существующий.
-
Щелкните ячейку, в которую вы хотите поместить данные из текстового файла.
-
На вкладке Данные в группе Получение внешних данных нажмите Из текста.
-
В диалоговом окне Импорт данных найдите и дважды щелкните текстовый файл, который нужно импортировать,и нажмите кнопку Импорт.
Следуйте инструкциям мастера импорта текста. Щелкните на любой странице мастера импорта текста, чтобы получить дополнительные сведения об использовании мастера. Окончив работу с мастером, нажмите кнопку Готово, чтобы завершить импорт.
-
В диалоговом окне Импорт данных:
-
В группе Куда следует поместить данные? выполните одно из следующих действий:
-
Чтобы поместить данные в выбранные ячейки, щелкните На существующий лист.
-
Чтобы поместить данные в верхний левый угол нового листа, выберите вариант На новый лист.
-
-
При необходимости нажмите кнопку Свойства, чтобы задать параметры обновления, форматирования и макета импортируемых данных.
-
Нажмите кнопку ОК.
Excel добавит диапазон внешних данных в указанное место.
-
Если Excel не преобразует столбец в необходимый формат, это можно сделать после импорта. Дополнительные сведения см. в статьях Преобразование чисел из текстового формата в числовой и Преобразование дат из текстового формата в формат даты.
Экспорт данных в текстовый файл путем его сохранения
Лист Excel можно преобразовать в текстовый файл, используя команду Сохранить как.
-
Выберите Файл > Сохранить как.
-
Откроется диалоговое окно Сохранение документа.
-
В поле Тип файла выберите формат текстового файла для листа.
-
Например, выберите Текстовые файлы (с разделителями табуляции) или CSV (разделители — запятые).
-
Примечание: Различные форматы текстовых файлов поддерживают разные возможности. Дополнительные сведения см. в статье Поддерживаемые Excel форматы файлов.
-
-
Перейдите в папку, куда вы хотите сохранить файл, а затем нажмите кнопку Сохранить.
-
Откроется диалоговое окно с напоминанием о том, что в текстовом файле будет сохранен только текущий лист. Если вы хотите сохранить именно текущий лист, нажмите кнопку ОК. Другие листы можно сохранить в отдельных текстовых файлах, повторив эту процедуру для каждого из них.
-
Откроется второе диалоговое окно с напоминанием о том, что сохраняемый лист может содержать возможности, которые не поддерживаются текстовыми форматами файлов. Если в новом текстовом файле нужно сохранить только данные листа, нажмите кнопку Да. Если вы не уверены и хотите получить дополнительные сведения о том, какие возможности Excel не поддерживаются форматами текстовых файлов, нажмите кнопку Справка.
Дополнительные сведения о сохранении файлов в других форматах см. в статье Сохранение книги в другом формате файла.
Способ изменения деления при импорте зависит от того, как вы импортируете текст.
-
Если вы используете get & Transform Data > From Text/CSV, после выбора текстового файла и нажатия кнопки Импорт выберитесимвол, который нужно использовать в списке …. Новый вариант можно сразу же увидеть в окне предварительного просмотра данных, чтобы убедиться в том, что вы сделаете нужный вариант, прежде чем продолжить.
-
Если вы импортируете текстовый файл с помощью мастера импорта текста, вы можете изменить его на шаге 2 мастера импорта текста. На этом шаге также можно изменить способ обработки последовательных разделителей (например, идущих подряд кавычек).
Дополнительные сведения о разных вариантах и дополнительных параметрах см. в мастере импорта текста.
Если при сохранение в CSV-окне вы хотите использовать в качестве по умолчанию полу двоеточие, но для этого нужно ограничиться Excel, измените десятичной запятой. В этом случае Excel будет использовать для этого двоеточие. Очевидно, что это также изменит способ отображения десятичных чисел, поэтому также рассмотрите возможность изменения разграничения чисел в тысячах, чтобы сузить путаницу.
-
Очистка параметров Excel> Дополнительные>параметры редактирования> Использование системных междугов.
-
Для десятичной запятой установитедля десятичной запятой (запятую).
-
Установите для 1000-го построитель. (точка).
Когда вы сохраняете книгу в CSV-файле, по умолчанию в качестве разных списков запятой является запятая. Вы можете изменить этот знак на другой знак с помощью параметров региона Windows.
Внимание: Изменение параметров Windows приведет к глобальным изменениям на компьютере и повлияет на все приложения. Чтобы изменить только делитель для Excel, см. изменение стандартного деления в списке для сохранения файлов в виде текста (CSV- или CSV-файла) в Excel.
-
В Microsoft Windows 10 щелкните правой кнопкой мыши кнопку Начните и выберите параметры.
-
Нажмите кнопку & языки выберите регион в левой области.
-
На главной панели в группе Региональные параметрыщелкните Дополнительные параметры даты,времени и региона.
-
В областивыберите изменить форматы даты, времени или числа.
-
В диалоговом окке Регион на вкладке Формат нажмите кнопку Дополнительные параметры.
-
В диалоговом окне Настройка формата на вкладке Числа введите символ, который будет использовать в качестве нового в поле «Сепаратор списков».
-
Дважды нажмите кнопку ОК.
-
Нажмите кнопку Пуск и выберите пункт Панель управления.
-
В разделе Часы, язык и регион щелкните элемент Изменение форматов даты, времени и чисел.
-
В диалоговом окке Регион на вкладке Формат нажмите кнопку Дополнительные параметры.
-
В диалоговом окне Настройка формата на вкладке Числа введите символ, который будет использовать в качестве нового в поле «Список».
-
Дважды нажмите кнопку ОК.
Примечание: После изменения разделителя элементов списка все программы на компьютере будут использовать новый символ. Вы можете вернуть стандартный символ, выполнив эти же действия.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
См. также
Импорт данных из внешних источников (Power Query)
Нужна дополнительная помощь?
Владимир23 5 / 5 / 4 Регистрация: 01.11.2009 Сообщений: 576 |
||||
1 |
||||
Открыть файл для записи31.03.2016, 13:31. Показов 3663. Ответов 7 Метки нет (Все метки)
Добрый день.
0 |
Hugo121 6875 / 2807 / 533 Регистрация: 19.10.2012 Сообщений: 8,562 |
||||
31.03.2016, 13:43 |
2 |
|||
1. Name — это оператор VBA, не используйте как имя переменной.
0 |
5 / 5 / 4 Регистрация: 01.11.2009 Сообщений: 576 |
|
31.03.2016, 13:48 [ТС] |
3 |
Visual Basic End With ошибка 400…слеша нет
0 |
31 / 27 / 11 Регистрация: 15.07.2015 Сообщений: 85 |
|
31.03.2016, 13:51 |
4 |
ошибка 400
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 |
|||
наверное так?
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 |
|||||||
забыл что форум слэши ест… пооптимизировал у меня только лист в открываемом называется «Реестр67», может тогда
Добавлено через 33 минуты
делал и Sheets(1) и Sheets(«Реестр67») Добавлено через 1 час 21 минуту
0 |
Владимир23 5 / 5 / 4 Регистрация: 01.11.2009 Сообщений: 576 |
||||
04.04.2016, 12:30 [ТС] |
8 |
|||
помогите дописать цикл — нужно дописать в файлы по 1 строке из основного. Кликните здесь для просмотра всего текста
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”