Как вставить txt файл в excel

Импорт и экспорт текстовых файлов (в формате 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)

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


Загрузить PDF


Загрузить PDF

В этой статье мы расскажем вам, как в Windows 10 текстовый файл (.txt) преобразовать в Excel-файл (.xlsx).

Шаги

  1. Изображение с названием Convert Notepad to Excel Step 1

    1

    Запустите Microsoft Excel. Для этого введите excel в строке поиска Windows, а затем щелкните по «Microsoft Excel».

  2. Изображение с названием Convert Notepad to Excel Step 2

    2

    Откройте меню Файл. Вы найдете его в левом верхнем углу окна Excel.

  3. Изображение с названием Convert Notepad to Excel Step 3

    3

    Нажмите Открыть.

  4. Изображение с названием Convert Notepad to Excel Step 4

    4

    Выберите Текстовые файлы в меню типов файлов.

  5. Изображение с названием Convert Notepad to Excel Step 5

    5

    Выберите текстовый файл, который нужно преобразовать, а затем нажмите Открыть. Откроется окно мастера импортирования текста.

  6. Изображение с названием Convert Notepad to Excel Step 6

    6

    Выберите тип данных и нажмите Далее. В разделе «Тип исходных данных» выберите «С разделителями» (если в текстовом файле есть данные, которые разделены запятыми, табуляцией или любым другим способом), или выберите «Фиксированной ширины» (если данные содержатся в столбцах, а между каждым полем с данными есть пробел).

  7. Изображение с названием Convert Notepad to Excel Step 7

    7

    Выберите тип разделителя или задайте ширину поля, а затем нажмите Далее.

    • Если до этого вы выбрали опцию «С разделителями», установите флажок у соответствующего символа (или у «Пробел», если данные разделены пробелами), который используется для разделения данных.
    • Если до этого вы выбрали опцию «Фиксированной ширины», просто следуйте инструкциям на экране.
  8. Изображение с названием Convert Notepad to Excel Step 8

    8

    Укажите формат данных столбца. Для этого установите флажок у соответствующей опции (у «Общий», «Текстовый» или «Дата»).

  9. Изображение с названием Convert Notepad to Excel Step 9

    9

    Нажмите Готово. Откроется окно «Сохранить как».

  10. Изображение с названием Convert Notepad to Excel Step 10

    10

    Выберите Книга Excel (*.xlsx) в меню «Тип файла». Вы найдете это меню в нижней части окна.

  11. Изображение с названием Convert Notepad to Excel Step 11

    11

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

    Реклама

Об этой статье

Эту страницу просматривали 32 150 раз.

Была ли эта статья полезной?

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

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

Возьмём такой жизненный и несложный пример — перенесем из текстового файла (с расширением .txt) в Excel список сотрудников, в котором перечислены фамилия, имя , отчество, год рождения и должность.

Допустим, вот наши герои:

Иванов Иван Иванович 1978 инспектор
Сидоров Петр Сидорович 1970 старший инспектор
Петров Василий Самуилович 1965 самый старший инспектор

Больше трех лень набивать 🙂 , но и их хватит.

Теперь определимся, какая нам нужна в Excel таблица? Пусть она имеет такие столбцы:
Фамилия, Имя, Отчество, Год рождения, Должность.

Все у нас имеется, но тут есть один нюанс в представлении должности. Для каждого сотрудника должность имеет разный размер – 1, 2 и 3 слова. Как же Excel указать, где начинается и заканчивается информация, заносимая по столбцам?

Для этого удобно использовать символ-разделитель. Таким символом может быть любой символ, который не встречается в Вашем тексте как знак препинания или спецсимвол. То есть, точка и запятая точно старайтесь не использовать, а вот звездочку или наклонную можно взять. В нашем случае, если бы должность у всех состояла из одного слова или так – ст.инспектор, сам.ст.инспектор (без пробелов), то подошел бы и пробел. Подходите творчески, чтобы меньше делать работы. 🙂

Структурируем наш список:

Фамилия/Имя/Отчество/Год рождения/Должность
Иванов/Иван/Иванович/1978/инспектор
Сидоров/Петр/Сидорович/1970/старший инспектор
Петров/Василий/Самуилович/1965/самый старший инспектор

и сохраняем в текстовом документе c расширением .txt . Теперь такой список замечательно перенесется в Excel.

Для этого заходим в Excel на вкладку Данные. В области Получение внешних данных нажимаем кнопку Из текста.

В открывшемся окне указываем на наш текстовый файл, из которого будем импортировать данные. После этого откроется Мастер импорта на первом шаге. Тут нужно указать структуру наших данных – “с разделителями” (которым у нас выступает наклонная «/»). После этого нажимаем кнопку Далее.

Мастер импорта в Excel

На следующем шаге мастера нужно указать символ-разделитель. Тут приведены некоторые варианты, но мы выбираем “другой” и в окошке вводим наш символ – наклонную. Сразу же в нижней области (с нашим списком) появляются вертикальные линии (столбцы), по которым можно проверить правильность разделения данных. Нажимаем кнопку Далее.

Мастер импорта в Excel шаг 2

На третьем шаге можно указать формат данных для каждого или выбранного столбца, если в этом есть необходимость. Как правило, такое актуально для столбцов с датой. Мы же ничего не меняем и жмём кнопку Готово.

Мастер импорта в Excel шаг 3

После этого нужно указать ячейку, с которой будет начинаться таблица – её левый верхний угол.

Мастер импорта в Excel шаг 4

После выбора ячейки и нажатия OK мы увидим наши данные, разнесенные по столбцам! Вуаля! Наш текст в таблицу Excel вставлен красиво и правильно.

Импортированные в Excel данные

Теперь можно навести марафет, указав выравнивание и задав границы.

Импортированные в Excel данные

 

Chelovek

Пользователь

Сообщений: 25
Регистрация: 21.04.2018

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

Исходные данные (прикрепляю):
Текстовый файл «Текст.txt» содержит строки с буквами, цифрами, пробелами и др. знаками.
Файл Excel «Таблица.xlsm» содержит Лист1 с кнопкой макроса (там же показано — Как должен выглядеть Столбец A по завершении работы).

  В процессе своей работы макрос должен:
1-Открыть проводник (диалог), позволяющий найти файл «Текст.txt»;
2-Открыть ТЕКУЩУЮ (!) папку (где находится файл Excel, а не где-нибудь в дебрях ПК);
  После того как выберем файл «Текст.txt»
3-Не открывать его как временный файл Excel, а СКОПИРОВАТЬ (!) с него данные.
4-Вставить эти данные в активный Лист1, начиная с ячейки A1 с таким условием:
5-1-я строчка txt = ячейка A1 Листа1
6-2-я строчка txt = ячейка A2 Листа1 и т.д.
7-Должны заполниться ячейки только из столбца A. Все остальные столбцы не задействуются.
8-Строки не должны разрываться.
9-Слова или цифры не должны слипаться. Пробелы между словами не должны исчезнуть.

Спасибо всем, кто откликнется!

 

Msi2102

Пользователь

Сообщений: 3137
Регистрация: 31.03.2014

С таким ТЗ Вам скорее всего в платный раздел

 

New

Пользователь

Сообщений: 4582
Регистрация: 06.01.2013

Chelovek, потестируйте файл

 

Chelovek

Пользователь

Сообщений: 25
Регистрация: 21.04.2018

New,
Проверил. На этом и на других файлах. Всё работает в точном соответствии с поставленными условиями. Очень благодарен. Я оставлю вам сообщение в личке.

 

Евгений Смирнов

Пользователь

Сообщений: 539
Регистрация: 18.02.2021

#5

31.01.2022 18:20:56

Цитата
Chelovek написал: Нужен небольшой макрос импорта данных из текстового файла в активный лист Excel.

Самый самый небольшой макросик, который смог за сегодня найти на бескрайних просторах интернета.(Весь день искал даже на обед не пошел)

Код
Sub enstaralgkl()
    Dim FileName$, Arr1
FileName = "Текст.txt": FileName = ThisWorkbook.Path & "" & FileName
    Open FileName For Input As #1: FileName = Input(LOF(1), #1)
    Arr1 = Split(FileName, vbNewLine): Reset
Range("A1").Resize(UBound(Arr1)) = WorksheetFunction.Transpose(Arr1)
End Sub

Функция открытия диалогового окна есть в файле NEW

 

Chelovek

Пользователь

Сообщений: 25
Регистрация: 21.04.2018

Евгений Смирнов

Ваш код работает. Впечатляет Ваш профессионализм. Большое спасибо за помощь! Если что — буду обращаться к Вам.

 

New

Пользователь

Сообщений: 4582
Регистрация: 06.01.2013

#7

01.02.2022 00:00:16

Евгений Смирнов, Евгений, т.к. массив после Split создаётся с нулевым индексом, то у вас не выгружается на лист последняя строка (Ярославль_609_610_100,16%).  Надо добавлять +1 при выгрузке на лист

Код
Range("A1").Resize(UBound(Arr1) + 1) = WorksheetFunction.Transpose(Arr1)

P.S. Так же, я надеюсь, вы знаете ограничения связанные с Transpose? На примере от ТС это не критично, но кто знает, какие реальные файлы у ТС в работе

Изменено: New01.02.2022 00:02:35

 

Chelovek: Спасибо за оценку моего скромного труда, но до профи мне далеко, как до Китая пешком. (Просто в некоторых вопросах, которые меня интересуют, стараюсь до конца разобраться)

New: Здравствуйте. В вашей функции CountLinesInTextFileFast надо добавлять +1 т.к. она считает количество строк в файле. В моем не надо. И вообще зачем вы 2 раза читаете текстовый файл. Первый раз чтобы посчитать кол-во строк, а второй, чтобы заполнить массив. Это все можно сделать за одно считывание (В данном случае). Про ограничение Transpose знаю, уже натыкался. Это легко обойти добавить цикл.(Сделать свою Transpose)

 

МатросНаЗебре

Пользователь

Сообщений: 5516
Регистрация: 05.02.2014

#9

01.02.2022 09:45:40

Цитата
написал:
мне далеко, как до Китая пешком

Жители Благовещенска никак не могут понять, является ли Евгений профи или нет )

UPD Этот край упомянул из-за близости к Китаю. Я сам не из этих мест.

Изменено: МатросНаЗебре01.02.2022 12:14:00

 

МатросНаЗебре Привет жителям Благовещенска, почти земляк. Но мне подальше до Китая, чем вам. А к профи не отношусь. Если узнаете о моей профессиональной деятельности будете сильно удивлены. (Никогда не занимался программированием профессионально это честно без шуток)

МатросНаЗебре А я  подумал сибиряк значит земляк. Обманули меня.

Изменено: Евгений Смирнов01.02.2022 14:16:08

 

New

Пользователь

Сообщений: 4582
Регистрация: 06.01.2013

#11

01.02.2022 11:20:33

Цитата
Евгений Смирнов написал:
В моем не надо.

Евгений, терять часть данных (последнюю строку) при импорте данных — не очень хорошая вещь.
Или вы мне не верите, что ваш код не переносит последнюю строку из текстового файла в Excel?

 

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

PS New Вы правы надо добавить +1. С файлом который в теме все нормально, но там последняя строка пустая. Если ее удалить, то последняя не выводится.

Изменено: Евгений Смирнов01.02.2022 11:39:23

 

юнат

Пользователь

Сообщений: 22
Регистрация: 18.10.2022

Здравствуйте.
В целом моя проблема в незнании VBA.
А одна из проблем — копирование данных из текстового файла в ексель автоматически.
В приведённом выше примере данные копируются по нажатию кнопки, а можно ли запускать
макрос по изменению текстового файла, и копировать только последнюю строчку из него?
Скажите есть ли такая возможность?

 

Можно отслеживать дату сохранения текстового файла.
Если она меняется, считывать последнюю строчку.
Отслеживать можно или периодическим макросом, или каким-нибудь, например, Worksheet_SelectionChange.

 

Ігор Гончаренко

Пользователь

Сообщений: 13746
Регистрация: 01.01.1970

#15

18.10.2022 13:56:52

Код
Sub TestRLL()
  MsgBox "<" & ReadLastLineFrom("d:igorf1.txt") & ">"
End Sub

Function ReadLastLineFrom$(FileName$)
  Dim fso, Txt, s$, p&
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set Txt = fso.OpenTextFile(FileName, 1)
  s = Txt.ReadAll:  Txt.Close: Set fso = Nothing
  ReadLastLineFrom = Right(s, Len(s) - InStrRev(s, vbLf))
End Function

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

юнат

Пользователь

Сообщений: 22
Регистрация: 18.10.2022

Ігор Гончаренко, спасибо!
Буду разбираться куда енто прикрутить.

 

Ігор Гончаренко

Пользователь

Сообщений: 13746
Регистрация: 01.01.1970

#17

18.10.2022 14:22:52

код нужно скопировать в стандартный модуль
а пользоваться можно вплоть до того, что в А1 написать полный путь к файлу, а, например, в А2  написать  

Код
=ReadLastLineFrom(A1)

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

юнат

Пользователь

Сообщений: 22
Регистрация: 18.10.2022

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

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

Изменено: юнат19.10.2022 09:36:28

 

пока условия вашей задачи известны только вам одному — вам самому ее и решать
когда сможете обьяснить условия задачи для всех — может кто-то подскажет как ее решить

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

юнат

Пользователь

Сообщений: 22
Регистрация: 18.10.2022

Ігор Гончаренко, благодарю за помощь!
Раз из текстового файла сложно записывать, спрошу в ветке импорта данных из ком порта сразу в ексель.

 

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

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

юнат

Пользователь

Сообщений: 22
Регистрация: 18.10.2022

Ігор Гончаренко, для меня всё непонятное — сложно.
Я думал/хотел чтоб макрос сам работал, автоматически, при изменении данных в Текст.txt.
А он запускается только принудительно, выдаёт значение только в сообщении и не записывает
данные в ячейку екселя.
Для моей задачи можно, допустим, чтоб раз в секунду макрос проверял
изменение файла Текст.txt., и если да, то автоматически копировал последнюю строчку в ексель.
В екселе у меня простенький макрос, который «узнаёт» длинный номер карты и меняет
его на простой десятичный номер.
Может у меня с настройками/надстройками екселя что то не правильно и поэтому ваш макрос не вводит значение в ячейку ексель?

 

юнат

Пользователь

Сообщений: 22
Регистрация: 18.10.2022

У меня задача читать рфид карты и преобразовывать их длинный номер в десятичную цифру (например 01004C11BBE7 = 57).
Человек подносит карту к считывателю, который подключен к ком порту компа, и с момента считывания
карты все преобразования должны быть выполнены автоматически.

 

а для меня сложно угадывать что думает другой человек, особенно если он об этом только думает, но ничего не говорит (не пишет)
вы не обязаны знать VBA
но если не знаете настолько, что не знаете как вместо
MsgBox «<» & ReadLastLineFrom(«d:igorf1.txt») & «>»
(демонстрация результата работы функции ReadLastLineFrom в окне сообщения)
результат работы этой функции положить в ячейку, то это просто:
[a1] = ReadLastLineFrom(«d:igorf1.txt»)
это все. результат в ячейке А1, если нужна строка как положить результат в другую ячейку — пишите в какую, напишу вам код))
и
относительно глобальной задачи: кто-то же когда-то пишет данные в текстовый файл?
он может  записать эти же данные и в нужную вам ячейку и не нужно ничего проверять раз в секунду, потому что за секунду в компьютере проходят тысячи событий и в вашем файле пока вы ждали секунду может оказаться 10 добавленных строк и вы получите только последнюю из них, а 9 уже похоронено в недрах файла
и…
бесполезно писать советы человеку, который не может изменить двух байт в коде, поможет только полностью работающий код (желательно сразу в файле, чтобы случайно не был скопирован не туда или не продублирован рядом с прошлым, что приведет отказу компилятора такое «исполнять»))
и…
это все перестает иметь хоть какое-то отношение к обсуждаемой тут теме. формулируйте свои вопросы в отдельных темах, не нужно эту тему превращать в мусорку для всего подряд

Изменено: Ігор Гончаренко20.10.2022 09:47:50

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

Jack Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#25

20.10.2022 09:45:00

Порадовал)))

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

юнат

Пользователь

Сообщений: 22
Регистрация: 18.10.2022

Ігор Гончаренко, я только добавляю исходные данные, а вы уже ругаетесь что это мусор, в то же время пишите что я ничего не говорю.
А тема у меня не поменялась  — «Макрос импорта строк из txt-файла» с уточнением: «автоматически», пытаюсь соблюдать правила форума, не плодить лишнего.
Если для этого нужна отдельная тема, извиняйте, не знал.
Спасибо за макрос — заработал, жаль что не автоматически. И условие 1 раз в секунду меня полностью устраивает, но при условии что txt файл был изменён для исключения постоянного вывода данных раз в секунду.
Прога что записывает в txt файл не хочет записывать в ексель, она триал-версия, я ей пользуюсь для наладки, хотелось бы в дальнейшем сразу из ком порта читать в ексель. Но пока все хотелки разом не реализовать, вот и пытаюсь постепенно выстраивать рабочую цепочку. До решения всей задачи мне как от Калининграда, вам как от Благовещенска до Китая пешком.
Чтоб вы понимали мой уровень владения компьютером, я наморщил лоб чтоб узнать путь C:UsersParkingDesktopТекст.txt
Да-да, бывают и такие люди.
Не Программисты — это люди, решающие проблемы, о существовании которых Программисты не подозревают, методами, которые Программисты не понимают! (есть и такая философия)))

 

читайте название темы, подумайте о чем это
как импортировать строки из текстового файла уже выясненно
после вашего уточнения выяснено даже как импортировать одну последнюю строку: ReadLastLineFrom(…)
а вот в каком месте и при каких обстоятельствах (как часто)  нужно это делать — можно выяснить только у вас и это не имеет НИКАКОГО отношения к обсуждаемой тут теме

Изменено: Ігор Гончаренко20.10.2022 12:30:27

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

юнат

Пользователь

Сообщений: 22
Регистрация: 18.10.2022

Ігор Гончаренко, большое спасибо за помощь, почти все свои задачи решил, осталась только до ком порта достучатся.
Так же благодарю МатросНаЗебре,  за Worksheet_SelectionChange, прикрутил кое как, работает.

 

юнат

Пользователь

Сообщений: 22
Регистрация: 18.10.2022

#29

20.12.2022 18:32:14

Хелп ми! Поломалось! Не работает!
А как хорошо работало.

Код
Function ReadLastLineFrom$(FileName$)
  Dim fso, Txt, s$, p&
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set Txt = fso.OpenTextFile(FileName, 1)
  s = Txt.ReadAll:  Txt.Close: Set fso = Nothing
  ReadLastLineFrom = Right(s, Len(s) - InStrRev(s, vbLf))
End Function 

Если курсор в текстовом файле спрыгивает на следующую пустую строчку, то этот вакуум копируется в ячейку ексель.
Подскажите как не копировать пустую последнюю строчку, а подняться на строчку выше, или предпоследнюю строчку со значением?

 

New

Пользователь

Сообщений: 4582
Регистрация: 06.01.2013

#30

20.12.2022 19:51:31

попробуйте так

Код
Function ReadLastLineFromTXT(FileName As String) As String
    Dim FSO As Object, TxtFile As Object, str As String, pos As Long
    
    Set FSO = CreateObject("Scripting.FileSystemObject")
    If Not FSO.FileExists(FileName) Then GoTo ExitMark:
    Set TxtFile = FSO.GetFile(FileName)
    If TxtFile.Size = 0 Then GoTo ExitMark:
    Set TxtFile = FSO.OpenTextFile(FileName, 1)
    str = TxtFile.ReadAll
    pos = InStrRev(str, vbLf)
    ReadLastLineFromTXT = Right(str, Len(str) - pos)
    If ReadLastLineFromTXT = "" Then
        Do While ReadLastLineFromTXT = ""
            pos = InStrRev(str, vbLf, pos - 1)
            ReadLastLineFromTXT = Right(str, Len(str) - pos)
            ReadLastLineFromTXT = Replace(ReadLastLineFromTXT, vbCrLf, "")
        Loop
    End If
    
    TxtFile.Close
ExitMark:
    Set TxtFile = Nothing
    Set FSO = Nothing
End Function

Изменено: New20.12.2022 20:11:14

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

Предположим, у вас есть список продуктов в файле «Блокнот» или .txt, и вам необходимо импортировать их в столбец электронной таблицы Excel. Это можно сделать двумя способами. Во-первых, вы можете вручную скопировать и вставить все тексты из файла .txt и вставить его в электронную таблицу. Во-вторых, вы можете использовать встроенную опцию Microsoft Excel, чтобы упростить задачу. Второй способ удобен, когда у вас есть большое количество текстов, которые нужно импортировать.

Давайте посмотрим, как легко импортировать или экспортировать данные из текстового файла для преобразования текстового файла (.txt или .csv) в электронную таблицу Excel (.xlsx). Чтобы импортировать данные из текстового файла в Microsoft Excel, выполните следующие действия. гид-

  1. Создайте пустую таблицу в Excel
  2. Перейдите на вкладку Data
  3. Нажмите «Из текста / CSV»
  4. Выберите текстовый файл на своем компьютере и нажмите кнопку импорта.
  5. Выберите источник файла и нажмите кнопку «Передать данные».
  6. Выберите, какие столбцы вы хотите импортировать
  7. Нажмите кнопку «Закрыть и загрузить».

Во-первых, создайте пустую электронную таблицу в Microsoft Excel и убедитесь, что на вашем компьютере есть файл .txt. После этого переключитесь с вкладки «Главная» на Данные таб.

Здесь вы можете найти вариант под названием Из текста / CSV. Если вы не можете найти эту опцию, перейдите к Получить данные > Из файла > Из текста / CSV.

Как импортировать данные из текстового файла в Microsoft Excel

Откроется окно редактора Power Query. Отсюда можно выбрать столбец, который вы хотите сохранить или удалить. Есть два варианта с названием Выбрать столбцы и Удалить столбцы.

Точно так же вы можете получить параметры для сохранения и удаления строк. Используйте их для настройки ваших данных и нажмите кнопку Закрыть и загрузить кнопку, чтобы завершить импорт.

Как преобразовать текстовый файл в электронную таблицу Excel

Вот и все!

Теперь вы должны найти данные своего текстового файла в электронной таблице.

Как преобразовать текстовый файл в электронную таблицу Excel

Понравилась статья? Поделить с друзьями:
  • Как вставить textbox в excel
  • Как вставить tex формулы в word
  • Как вставить svg файл в word
  • Как вставить svg в excel
  • Как вставить без скрытых ячеек в excel