Макросы txt в 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

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

Сообщений: 10852
Регистрация: 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

Нет, ну ты видел?!

8 / 8 / 0

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

Сообщений: 146

1

31.08.2020, 08:17. Показов 10686. Ответов 74


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

Здравствуйте,
Есть файл txt_01.txt, из него необходимо скопировать содержимое
Содержимое столбцами расположено, примеру так

15rt63 174asd94 39047 494 39a049 0304
157863 174394 39047 4a94 39049 0304

1a57863 1asd394 390ds47 494 390a49 0304
15d7863 174394 39047 494 39dsd049 0304

157863 17asd394 39047 494 39049 0304
157863 174d394 3904a7 494 39049 0304

Нужен макрос, который бы скопировал всё и вставил также по столбикам с первой ячейки первой строчки в определенный лист excel файла

Листая интернет, я нашел много ссылок на такие макросы, но почему то они у меня не работают. Я их слабо понимаю, и видимо одной замены расположения txt файла недостаточно, помогите :/
Спасибо



0



Programming

Эксперт

94731 / 64177 / 26122

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

Сообщений: 116,782

31.08.2020, 08:17

Ответы с готовыми решениями:

Импорт txt в excel
Добрый день! Есть макрос, который импортирует txt файл в excel, подскажите, пожалуйста, как…

Импорт txt в excel
Добрый день!
Если кто-нибудь знает, подскажите, пожалуйста, как решить данную задачу: у меня есть…

Импорт txt в Excel
Здравствуйте! Имеется txt документ. Нужен макрос, которы будет конвертировать информацию из него в…

Импорт из Excel или Txt в БД Лотус
Вроде тема поднимлась так или иначе, но то что нужно не нашла.
Пожалуйста, поделитесь скриптом,…

74

Часто онлайн

792 / 530 / 238

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

Сообщений: 1,820

31.08.2020, 09:51

2

blackfisk, Какой разделитель между блоками?
Где файл?



0



Narimanych

2632 / 1637 / 745

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

Сообщений: 5,143

31.08.2020, 09:52

3

blackfisk,

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Sub MMM()
        FL = Application.GetOpenFilename("Excel files(*.txt*),*.txt*", 1, "Âûáîð òåêñòîâîãî ôàéëà", , False)
            If VarType(FL) = vbBoolean Then Exit Sub
               
        Workbooks.OpenText Filename:=FL, _
            Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
            ConsecutiveDelimiter:=True, Tab:=False, _
            Semicolon:=False, Comma:=False, Space:=True, _
            Other:=False, TrailingMinusNumbers:=True, _
            Local:=True
 
End Sub



0



blackfisk

Нет, ну ты видел?!

8 / 8 / 0

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

Сообщений: 146

31.08.2020, 10:05

 [ТС]

4

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

blackfisk,

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Sub MMM()
        FL = Application.GetOpenFilename("Excel files(*.txt*),*.txt*", 1, "Âûáîð òåêñòîâîãî ôàéëà", , False)
            If VarType(FL) = vbBoolean Then Exit Sub
               
        Workbooks.OpenText Filename:=FL, _
            Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
            ConsecutiveDelimiter:=True, Tab:=False, _
            Semicolon:=False, Comma:=False, Space:=True, _
            Other:=False, TrailingMinusNumbers:=True, _
            Local:=True
 
End Sub

Спасибо
Но получается не очень, числа слипаются в одну ячейку в excel

Возможно я неправильно объяснил, между числами может быть больше одного пробела
К тому же макрос создает отдельный лист, а нужно открывать и в уже имеющемся листе документа, в котором и располагается кнопочка с макросом,
Наверное лучше показать исходный вид txt файла
Это только один из кучи разных txt с разными «размерностями» столбцов

Что то слепилось у меня, но он также не распределяет нормально числа по ячейкам

Visual Basic
1
2
3
4
5
6
7
8
9
Sub macro()
Dim a, i&, tmp
a = Split(CreateObject("Scripting.FileSystemObject").Getfile("D:...1.txt").OpenasTextStream(1).readall, vbNewLine)
For i = 0 To UBound(a)
a(i) = Replace(a(i), """", "")
tmp = Split(a(i), vbTab)
Cells(i + 1, 1).Resize(1, UBound(tmp)) = tmp
Next
End Sub

Миниатюры

Импорт текста из txt в excel
 



0



2632 / 1637 / 745

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

Сообщений: 5,143

31.08.2020, 10:15

5

blackfisk,

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

Наверное лучше

прикрепить текстовый файл….



0



Нет, ну ты видел?!

8 / 8 / 0

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

Сообщений: 146

31.08.2020, 10:44

 [ТС]

6

Извините, вот txt



0



КостяФедореев

Часто онлайн

792 / 530 / 238

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

Сообщений: 1,820

31.08.2020, 11:01

7

blackfisk,

Visual Basic
1
2
3
4
5
6
7
8
Sub tyyy()
 ChDir "C:UsersadminDesktop"
    Workbooks.OpenText Filename:="C:UsersadminDesktoptxt3.txt", Origin:= _
        1251, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, Comma:=False, _
        Space:=True, Other:=False, _
        TrailingMinusNumbers:=True
End Sub

Так?

Добавлено через 1 минуту
если заголовки не нужны поменяйте на три

Visual Basic
1
StartRow:=1



0



Нет, ну ты видел?!

8 / 8 / 0

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

Сообщений: 146

31.08.2020, 11:08

 [ТС]

8

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

Макрос запускается по нажатию кнопки в excel файле



0



Catstail

Модератор

Эксперт функциональных языков программированияЭксперт Python

34709 / 19230 / 4040

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

Сообщений: 32,197

Записей в блоге: 13

31.08.2020, 11:14

9

blackfisk, у тебя данные «грязные», разделитель — то пробел, то табуляция…

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
'::: Загрузка данных из файла fname на лист Sho c колони colStart и строки rowStart
 
Sub import_data(Sho As Worksheet, fname As String, Optional colStart As Long = 1, Optional rowStart As Long = 1)
 
    fi% = FreeFile()
    Open fname For Input As #fi%
    
    ccc& = colStart
    rrr& = rowStart
    
    Do While Not EOF(fi%)
    
       Line Input #fi%, Stri$
       
       Stri$ = Trim$(Stri$)
       
       If Len(Stri$) > 0 Then
    
          Stri$ = Stri$ + " "
    
          Tmp$ = ""
    
          For i% = 1 To Len(Stri$)
          
              s$ = Mid$(Stri$, i%, 1)
              
              If (s$ <> " ") And (s$ <> Chr$(9)) Then
                 Tmp$ = Tmp$ + s$
              ElseIf Len(Tmp$) <> 0 Then
                 Sho.Cells(rrr&, ccc&).Value = Tmp$
                 ccc& = ccc& + 1
                 Tmp$ = ""
              End If
          
          Next i%
     
          rrr& = rrr& + 1
          ccc& = colStart
    
       End If
    
    Loop
    
    Close #fi%
 
End Sub
 
Sub Test()
 
    HomeDir$ = ThisWorkbook.Path
    import_data Лист1, HomeDir$ + "txt2.txt"
 
End Sub

Вложения

Тип файла: zip Задачи-VBA-CM.zip (10.2 Кб, 27 просмотров)



0



6875 / 2807 / 533

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

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

31.08.2020, 11:14

10

Я думаю второй макрос из №4 пойдёт, только там где vbtab нужно прописать тот разделитель, что есть в файле.



0



Нет, ну ты видел?!

8 / 8 / 0

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

Сообщений: 146

31.08.2020, 11:32

 [ТС]

11

Не могу повлиять на это, к сожалению

Получается ошибка :/
txt1.txt в папке с excel файлом есть

Миниатюры

Импорт текста из txt в excel
 



0



КостяФедореев

Часто онлайн

792 / 530 / 238

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

Сообщений: 1,820

31.08.2020, 11:43

12

blackfisk,

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
Sub tyyy(path)
Dim rw As Long
    Dim wb As String
    
    Workbooks.OpenText Filename:= _
        path, Origin:=866, StartRow _
        :=3, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, Comma:=False, _
        Space:=False, Other:=False, _
        DecimalSeparator:=".", TrailingMinusNumbers:=True
         
      wb = ActiveWorkbook.Name
        
        Range("A1").CurrentRegion.Copy
        ThisWorkbook.Activate
        ActiveSheet.Paste
    Application.CutCopyMode = False
    Workbooks(wb).Close
End Sub
Sub OpenDial()
 
    Dim lngCount As Long
    
    Application.ScreenUpdating = False
    Application.ShowWindowsInTaskbar = False
 
    With Application.FileDialog(msoFileDialogOpen)
        .AllowMultiSelect = True
        .Filters.Clear
        .Filters.Add "Текстовые файлы", "*.txt", 1
        .InitialFileName = ThisWorkbook.path
        .Show
        
        For lngCount = 1 To .SelectedItems.Count
            Call tyyy(.SelectedItems(lngCount))
        Next lngCount
 
    End With
    
    Application.ScreenUpdating = True
    Application.ShowWindowsInTaskbar = True
    
 
End Sub

С возможностью выбора файла



0



Narimanych

2632 / 1637 / 745

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

Сообщений: 5,143

31.08.2020, 11:43

13

blackfisk,

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub MMM()
Application.ScreenUpdating = False
     FL = Application.GetOpenFilename("Excel files(*.txt*),*.txt*", 1, "Выбор текстового файла", , False)
            If VarType(FL) = vbBoolean Then Exit Sub
            
            Open FL For Input As #1
                       Do Until EOF(1)
                                    Line Input #1, WD:
                                    ARR = Split(WD, Chr(9))
                                                  For i = 0 To UBound(ARR) - 1
                                                     Cells(RW, i + 1).Value = ARR(i)
                                                    Next
                                      RW = RW + 1
                            Loop
               Close #1
   Application.ScreenUpdating = True
   MsgBox "job Complete"
End Sub



0



blackfisk

Нет, ну ты видел?!

8 / 8 / 0

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

Сообщений: 146

31.08.2020, 11:51

 [ТС]

14

Цитата
Сообщение от КостяФедореев
Посмотреть сообщение

blackfisk,

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
Sub tyyy(path)
Dim rw As Long
    Dim wb As String
    
    Workbooks.OpenText Filename:= _
        path, Origin:=866, StartRow _
        :=3, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, Comma:=False, _
        Space:=False, Other:=False, _
        DecimalSeparator:=".", TrailingMinusNumbers:=True
         
      wb = ActiveWorkbook.Name
        
        Range("A1").CurrentRegion.Copy
        ThisWorkbook.Activate
        ActiveSheet.Paste
    Application.CutCopyMode = False
    Workbooks(wb).Close
End Sub
Sub OpenDial()
 
    Dim lngCount As Long
    
    Application.ScreenUpdating = False
    Application.ShowWindowsInTaskbar = False
 
    With Application.FileDialog(msoFileDialogOpen)
        .AllowMultiSelect = True
        .Filters.Clear
        .Filters.Add "Текстовые файлы", "*.txt", 1
        .InitialFileName = ThisWorkbook.path
        .Show
        
        For lngCount = 1 To .SelectedItems.Count
            Call tyyy(.SelectedItems(lngCount))
        Next lngCount
 
    End With
    
    Application.ScreenUpdating = True
    Application.ShowWindowsInTaskbar = True
    
 
End Sub

С возможностью выбора файла

Копирует какие то символы, и даже не всю таблицу

Добавлено через 22 секунды

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

blackfisk,

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub MMM()
Application.ScreenUpdating = False
     FL = Application.GetOpenFilename("Excel files(*.txt*),*.txt*", 1, "Выбор текстового файла", , False)
            If VarType(FL) = vbBoolean Then Exit Sub
            
            Open FL For Input As #1
                       Do Until EOF(1)
                                    Line Input #1, WD:
                                    ARR = Split(WD, Chr(9))
                                                  For i = 0 To UBound(ARR) - 1
                                                     Cells(RW, i + 1).Value = ARR(i)
                                                    Next
                                      RW = RW + 1
                            Loop
               Close #1
   Application.ScreenUpdating = True
   MsgBox "job Complete"
End Sub

Пишет ошибка 400 ;/



0



2632 / 1637 / 745

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

Сообщений: 5,143

31.08.2020, 11:54

15

blackfisk,
Print screen ошибки вышлите…



0



blackfisk

Нет, ну ты видел?!

8 / 8 / 0

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

Сообщений: 146

31.08.2020, 11:55

 [ТС]

16

Цитата
Сообщение от КостяФедореев
Посмотреть сообщение

blackfisk,

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
Sub tyyy(path)
Dim rw As Long
    Dim wb As String
    
    Workbooks.OpenText Filename:= _
        path, Origin:=866, StartRow _
        :=3, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, Comma:=False, _
        Space:=False, Other:=False, _
        DecimalSeparator:=".", TrailingMinusNumbers:=True
         
      wb = ActiveWorkbook.Name
        
        Range("A1").CurrentRegion.Copy
        ThisWorkbook.Activate
        ActiveSheet.Paste
    Application.CutCopyMode = False
    Workbooks(wb).Close
End Sub
Sub OpenDial()
 
    Dim lngCount As Long
    
    Application.ScreenUpdating = False
    Application.ShowWindowsInTaskbar = False
 
    With Application.FileDialog(msoFileDialogOpen)
        .AllowMultiSelect = True
        .Filters.Clear
        .Filters.Add "Текстовые файлы", "*.txt", 1
        .InitialFileName = ThisWorkbook.path
        .Show
        
        For lngCount = 1 To .SelectedItems.Count
            Call tyyy(.SelectedItems(lngCount))
        Next lngCount
 
    End With
    
    Application.ScreenUpdating = True
    Application.ShowWindowsInTaskbar = True
    
 
End Sub

С возможностью выбора файла

Visual Basic
1
2
3
4
5
6
7
8
Sub tyyy()
 ChDir "C:UsersadminDesktop"
    Workbooks.OpenText Filename:="C:UsersadminDesktoptxt3.txt", Origin:= _
        1251, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, Comma:=False, _
        Space:=True, Other:=False, _
        TrailingMinusNumbers:=True
End Sub

Этот макрос работает, как добавить в него, чтобы он работал дальше с открывшемся окном:
Скопировал таблицу полученную — это понятно
вставил в другой excel — допустим, это понятно
Закрыл файл с таблицей без сохранения — вот это не понятно

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



0



Нет, ну ты видел?!

8 / 8 / 0

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

Сообщений: 146

31.08.2020, 11:56

 [ТС]

17

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

blackfisk,
Print screen ошибки вышлите…

Указывает на строку
Cells(rw, i + 1).Value = ARR(i)

Миниатюры

Импорт текста из txt в excel
 



0



Часто онлайн

792 / 530 / 238

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

Сообщений: 1,820

31.08.2020, 12:01

18

У меня код Narimanych, работает идеально.



0



Narimanych

2632 / 1637 / 745

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

Сообщений: 5,143

31.08.2020, 12:04

19

blackfisk,

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub MMM()
Application.ScreenUpdating = False
     FL = Application.GetOpenFilename("Excel files(*.txt*),*.txt*", 1, "Âûáîð òåêñòîâîãî ôàéëà", , False)
            If VarType(FL) = vbBoolean Then Exit Sub
       RW = 1
            Open FL For Input As #1
                       Do Until EOF(1)
                                    Line Input #1, WD:
                                    ARR = Split(WD, Chr(9))
                                                  For i = 0 To UBound(ARR) - 1
                                                     Cells(RW, i + 1).Value = ARR(i)
                                                    Next
                                      RW = RW + 1
                            Loop
               Close #1
   Application.ScreenUpdating = True
   MsgBox "job Complete"
End Sub

Добавлено через 1 минуту
blackfisk,
Можете прикрепить ваш экселевский файл( если не секретный)



0



blackfisk

Нет, ну ты видел?!

8 / 8 / 0

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

Сообщений: 146

31.08.2020, 12:09

 [ТС]

20

я на чистом файле проверяю макросы,
У меня папка с пустым xlsm файлом и txt-eшниками

Добавлено через 3 минуты

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

blackfisk,

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub MMM()
Application.ScreenUpdating = False
     FL = Application.GetOpenFilename("Excel files(*.txt*),*.txt*", 1, "Âûáîð òåêñòîâîãî ôàéëà", , False)
            If VarType(FL) = vbBoolean Then Exit Sub
       RW = 1
            Open FL For Input As #1
                       Do Until EOF(1)
                                    Line Input #1, WD:
                                    ARR = Split(WD, Chr(9))
                                                  For i = 0 To UBound(ARR) - 1
                                                     Cells(RW, i + 1).Value = ARR(i)
                                                    Next
                                      RW = RW + 1
                            Loop
               Close #1
   Application.ScreenUpdating = True
   MsgBox "job Complete"
End Sub

Добавлено через 1 минуту
blackfisk,
Можете прикрепить ваш экселевский файл( если не секретный)

upd Скопировал, хоть и не быстро, но скопировал,
Я так понимаю вписывает он данные на активный лист, хорошо, а как ему сказать, чтобы это был не активный лист, а лист с определенным названием, к примеру page(1) ?



0



VBA Program to read a Text file line by line (Sales Data) and places on a worksheet. 

Sales Data in Text File: 5 Fields [ Product, Qtr 1, Qtr 2, Qtr 3 and Qtr 4 ] and 25 Records (Incl. header)

Sales data

VBA code will read a text file and places on worksheet cells as below

VBA Code:

  • Declaring variables:
Variables Data Type Comments
line String Read text file line by line
Filename String Input file name (Full path)
i Integer Iterator
valueArr() String split the sentence by comma and store it in an array variable of type String
    'Variable declarations
    Dim line As String, Filename As String, i As Integer, valuesArr() As String
  • Initialize “Filename” variable with full path and filename
    'Text file fullPath
    Filename = "D:ExcelReadTextFilesales.txt" 'update your full file path
    i = 1
  • Open input file to read text 
    'Open file
    Open Filename For Input As #2
  • Read input file line by line
    'Read line by line - text file
    While Not EOF(2)
        Line Input #2, line
  • Split by comma and store it in valueArr().  In our example, each line has 5 values concatenated with comma.
        'split the line by comma separated, assigned in an array
        valuesArr() = Split(line, ",")
  • Add text to respective cells from valuesArr().  Read each item in an array by it’s index value
        Cells(i, "A").Value = valuesArr(0)
        Cells(i, "B").Value = valuesArr(1)
        Cells(i, "C").Value = valuesArr(2)
        Cells(i, "D").Value = valuesArr(3)
        Cells(i, "E").Value = valuesArr(4)
  • Increment counter i, to move next line.
        i = i + 1
  • Close while loop
    Wend
  • Close file
'Close file
Close #2

Approach:

Step 1: Open Excel.

Step 2: Add a shape (Read Text File) to your worksheet  .

Step 3: Right-click on “Read Text file” and “Assign Macro..”

Step 4: Select ReadTextFileLineByLine Macro

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

Step 6: Click “Read Text file” 

Step 7: Adjust column width in your excel file.

Запись в столбец эксель — данных из txt

Glass4217

Дата: Среда, 22.05.2019, 06:21 |
Сообщение № 1

Группа: Пользователи

Ранг: Участник

Сообщений: 55


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

Доброго времени суток.
Помогите разобраться с макросом.

Имеется файл «Текстовый файл.txt», где строго построчно записаны текстовые данные.

Как макросом — заполнить столбец H — построчными данными из txt, начиная с того места, где кончаются единицы в столбце F ?
В данном случае заполнение начнется со строки H33.

 

Ответить

RAN

Дата: Среда, 22.05.2019, 10:29 |
Сообщение № 2

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

И почему мне всегда казалось, что фраза

Помогите разобраться с макросом.

предполагает, как минимум, наличие оного?


Быть или не быть, вот в чем загвоздка!

 

Ответить

K-SerJC

Дата: Среда, 22.05.2019, 13:51 |
Сообщение № 3

Группа: Проверенные

Ранг: Обитатель

Сообщений: 487


Репутация:

86

±

Замечаний:
0% ±


Excel 2013


Благими намерениями выстелена дорога в АД.

 

Ответить

Glass4217

Дата: Четверг, 23.05.2019, 07:49 |
Сообщение № 4

Группа: Пользователи

Ранг: Участник

Сообщений: 55


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

K-SerJC, ну вот я по ссылке нашел вот такой код:
[vba]

Код

Sub xx()
    With Application
        .ScreenUpdating = 0: .EnableEvents = 0: .DisplayAlerts = False
        Open ActiveWorkbook.Path & «8037208.txt» For Input As #1
        With GetObject(«new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}»)
            .SetText Input$(LOF(1), 1)
            .PutInClipboard
        End With
        Close #1
        With [C5:F5]
            Range(.Cells, .End(xlDown)).ClearContents
            .Cells(1).PasteSpecial xlPasteAll
            .Copy
        End With
        .CutCopyMode = 0
        .ScreenUpdating = 1: .EnableEvents = 1: .DisplayAlerts = 1
    End With
End Sub

[/vba]

Так там — не то.

Там — табулированный текст и вставляется он сразу в несколько столбцов.
А у меня — нужно только в один столбец.

Потом еще этот код — не учитывает наличие единиц в столбце F.

 

Ответить

K-SerJC

Дата: Четверг, 23.05.2019, 09:06 |
Сообщение № 5

Группа: Проверенные

Ранг: Обитатель

Сообщений: 487


Репутация:

86

±

Замечаний:
0% ±


Excel 2013

Доброго дня!
ну так вы писали:

Помогите разобраться с макросом

а как вам помочь, если вы ничего не делаете?

так и написали бы что ни будь в стиле: «сделайте пожалуйста мне макрос который сделает то что мне нужно.»

Там — табулированный текст и вставляется он сразу в несколько столбцов.

так попробуйте свой файл поставить и путь(имя) к нему указать
в этой строке:
[vba]

Код

Open ActiveWorkbook.Path & «8037208.txt» For Input As #1

[/vba]
ActiveWorkbook.Path — это директория где лежит ваш файл эксель

а вот тут задаются ячейки после которых сначала удаляются данные с листа, а затем вставляются данные из txt
[vba]

[/vba]


Благими намерениями выстелена дорога в АД.

 

Ответить

Glass4217

Дата: Четверг, 23.05.2019, 10:04 |
Сообщение № 6

Группа: Пользователи

Ранг: Участник

Сообщений: 55


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

K-SerJC, спасибо за ответ.
Теперь макрос выглядит так:
[vba]

Код

Sub xx()
    With Application
        .ScreenUpdating = 0: .EnableEvents = 0: .DisplayAlerts = False
        Open ActiveWorkbook.Path & «Текстовый файл.txt» For Input As #1
        With GetObject(«new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}»)
            .SetText Input$(LOF(1), 1)
            .PutInClipboard
        End With
        Close #1
        With [H7]
            Range(.Cells, .End(xlDown)).ClearContents
            .Cells(1).PasteSpecial xlPasteAll
            .Copy
        End With
        .CutCopyMode = 0
        .ScreenUpdating = 1: .EnableEvents = 1: .DisplayAlerts = 1
    End With
End Sub

[/vba]

Но этот файл — перед вставкой — удаляет предыдущее содержимое столбца H, хотя этого делать не нужно.
Я спрашивал — как осуществить вставку текста — в столбец H, начиная с последней соответствующей ячейки (где нет 1 столбца F).
То есть это должна сейчас быть — ячейка H33.

Каково ваше мнение — как реализовать эту операцию ?

 

Ответить

K-SerJC

Дата: Четверг, 23.05.2019, 11:15 |
Сообщение № 7

Группа: Проверенные

Ранг: Обитатель

Сообщений: 487


Репутация:

86

±

Замечаний:
0% ±


Excel 2013

То есть это должна сейчас быть — ячейка H33.

Каково ваше мнение — как реализовать эту операцию ?

ну вот так попробуйте заменить
[vba][/vba]
на
[vba]

Код

with Cells(Cells(Rows.Count, 8).End(xlUp).Row,8)

[/vba]


Благими намерениями выстелена дорога в АД.

 

Ответить

RAN

Дата: Четверг, 23.05.2019, 11:27 |
Сообщение № 8

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

[vba]

Код

Sub мяу()
    Open ActiveWorkbook.Path & «8037208.txt» For Input As #1
    spl = Split(Input$(LOF(1), 1), vbNewLine)
    Cells(Rows.Count, «F»).End(xlUp).Offset(1, 2).Resize(UBound(spl)) = spl
    Close #1
End Sub

[/vba]


Быть или не быть, вот в чем загвоздка!

 

Ответить

Glass4217

Дата: Четверг, 23.05.2019, 11:41 |
Сообщение № 9

Группа: Пользователи

Ранг: Участник

Сообщений: 55


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

RAN, K-SerJC, теперь все работает. Спасибо за ответы в теме.

 

Ответить

Программы и макросы Excel для работы с текстовыми файлами TXT (импорт данных из TXT, выгрузка в TXT, обработка текстовых файлов, сбор данных из TXT файлов)

  • Надстройка FillDocuments для MS Excel: общие сведения

    Предназначение программы: заполнение множества документов данными из Excel нажатием одной кнопки.
    Для работы программы требуется таблица Excel с данными для подстановки, и папка с шаблоном (шаблонами) документов.
    В качестве шаблонов можно использовать файлы Word и Excel.
    На выходе получаются заполненные файлы исходного…

  • Структура программы «Парсер сайтов»

    Надстройка Parser для Excel — простое и удобное решение для парсинга любых сайтов (интернет-магазинов, соцсетей, площадок объявлений) с выводом данных в таблицу Excel (формата XLS* или CSV), а также скачивания файлов.
    Особенность программы — очень гибкая настройка постобработки полученных данных (множество текстовых функций, всевозможные фильтры, перекодировки, работа с переменными,…

  • Функции ChangeFileCharset и ChangeTextCharset предназначены для изменения кодировки символов в текстовых файлах и строках.
    Исходную и конечную (желаемую) кодировку можно задать в параметрах вызова функций.

    ВНИМАНИЕ: Функции чтения и сохранения текста в файл в заданной кодировке

    Список доступных на вашем компьютере кодировок можно найти в реестре Windows в ветке
    HKEY_CLASSES_ROOTMIMEDatabase…

  • Данные функции предназначены для работы с текстовыми файлами из VBA Excel.
    Используя эти функции, вы при помощи одной строки кода сможете записать текст из переменной в файл, или наоборот, загрузить содержимое текстового файла в переменную.
    Подразумевается, что текстовые файлы имеют формат ANSI (он же ASCII, он же windows-1251)

    ВНИМАНИЕ: См. также функции чтения и сохранения текста в файл в…


  • Макрос предназначен для создания текстовых файлов в кодировке UTF-8.
    Исходными данными является таблица Excel из 12 столбцов.
    Сначала, макрос создаёт папку для будущих текстовых файлов.
    Папка создаётся в том же каталоге, где расположена книга Excel.
    Далее, для каждой строки таблицы, макрос формирует подпапку,
    используя в качестве её названия текст из 7-го столбца таблицы.
    И потом, когда папка…

  • Загрузка (импорт) файла CSV на лист Excel


    Надстройка предназначена для облегчения импорта данных в Excel из текстовых файлов с разделителями (например, из CSV)

    Пока во вложении — обычный файл Excel с нужными макросами, надстройку выложу позже

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

    Использовать функции…


  • Представляю вашему вниманию инструментарий для работы с файлами по FTP

    Как известно, отправить файл на FTP сервер (или загрузить файл с FTP, создать папку на FTP сервере, и т.д.) можно при помощи таких API-функций из библиотеки wininet.dll, как FtpPutFile, FtpGetFile, FtpRenameFile, FtpDeleteFile, FtpRemoveDirectory, FtpCreateDirectory, FtpFindFirstFile и т.д…

  • Отправка почты из Excel при помощи TheBAT!


    Если вам нужно рассылать письма из Excel,
    воспользуйтесь готовым решением в виде надстройки FillDocuments
    Ознакомьтесь с возможностями и способами рассылки писем из Excel,
    а также с инструкцией по настройке рассылки через TheBAT

    Макроc предназначен для автоматизированной рассылки почты из Excel.
    Для рассылки используется почтовая программа TheBAT!
    (подразумевается, что эта программа на…


  • Функция TextFile2Array предназначена для преобразования файла CSV в двумерный массив
    Очень часто при работе с текстовыми файлами (и, в частности, с файлами CSV) приходится их загружать на лист Excel, предварительно производя фильтрацию данных в этом файле.
    Чтобы упростить весь процесс — от выбора файла CSV в диалоговом окне, до разбиения загруженного из файла текста в двумерный массив, и была…


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

    Разделитель строк (обычно это перевод строки — константа vbNewLine) задаётся в качестве параметра функции Delimiter$

    Создаваемые файлы получают имена вида filename(1).txt, filename(2).txt и т.д.

    Если задан параметр функции…

  • Панель инструментов программы обработки телефонных номеров


    Программа предназначена для обработки объявлений о продаже недвижимости.
     

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

    разносить номера из ячеек по разным столбцам или строкам…

  • Результат формирования задания на производство

    Программа предназначена для формирования заданий на производство.
    Исходными данными выступают таблицы Excel и файлы XML.
    При конвертации таблиц происходит обработка данных и перестановка столбцов.
    При запуске программа формирует панель инструментов с 6 кнопками — для обработки файлов различной структуры.

  • Результат обработки объявлений - таблица на листе Excel

    Программа предназначена для преобразования файлов формата .HTM с объявлениями о продаже недвижимости (файлы являются результатом сохранения веб-страниц с сайтов публикации объявлений) в формат Microsoft Excel.
    Программа производит анализ текста объвлений, распознаёт значения площади и этажности, отделяет второстепенные данные (комментарий) из текста объявления, преобразует различные форматы цен (…

  • Скриншот программы загрузки списка температур из текстового файла


    Макрос предназначен для загрузки данных из выбранного текстового файла.
    В данном примере макрос загружает из текстового файла (формата CSV) список минимальных и максимальных температур за указанный год.
    Год выбирается на листе из выпадающего списка.
    На листе запуска всего 2 кнопки — первая запускает макрос загрузки данных, вторая — очищает заполненную таблицу.

    В демонстрационных целях в…

  • Функции WIF и RIF являются обёртками для WinAPI функций WritePrivateProfileString и GetPrivateProfileString, и предназначены для записи и чтения параметров из файлов конфигурации INI.
    INI-файлы — это обычные текстовые файлы, предназначенные для хранения настроек программ.
    Примерный вид структуры INI -файла:

    ; комментарий
    [Section1]
    var1 = значение_1
    var2 = значение_2
    [access]
    changed=02.06…

  • Скриншот формы текстового редактора

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

  • Промежуточные результаты отработки котировок

    Результат загрузки котировок из внешних файлов

    Программа позволяет загружать котировки различных валют из файлов формата .HTM, и анализировать их при различных параметрах анализа.
    Все котировки разбиваются на отдельные блоки (временные диапазоны для разбивки задаются на форме настроек), и анализ производится по каждому блоку в отдельности.
    Есть возможность исключить из расчётов данные за пятницу.
    Изменение параметров вычисления значений BS…

  • Пример обрабатываемого текстового файла, содержащего данные о компьютере


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

    Выбор папки с данными по всем компьютерам…

  • Скриншот программы обработки котировок в формате CSV


    Программа служит для преобразования тиковых значений котировок в свечи необходимого периода
    Исходный файл в формате .csv получается в результате выгрузки (экспорта) котировок с сайта www.finam.ru (Фьючерсы ФОРТС),
    и содержит большое количество строк (записей) — около 1 миллиона за 1 день.
    В исходном файле CSV имеется таблица  со следующими столбцами:
    <TICKER> <PER> <DATE…

  • Настройка шаблона писем для рассылки детализации звонков


    Программа предназначена для создания отчётов по детализации телефонных звонков (междугородная и международная связь), последующей упаковки созданных детализаций в ZIP архив, и автоматизированной рассылки сформированных писем абонентам.
    При запуске программа ищет в заданной папке исходные файлы с детализацией (упакованные в ZIP файлы DBF), и на основании из этих файлов формирует (по шаблону, с…

  • Скриншот программы выгрузки таблицы в CSV


    Программа формирует выгрузку в CSV для выделенных строк таблицы Excel

    Есть возможность одним нажатием выделить все строки в таблице (или снять выделение со всех строк)

    Реализована возможность разбиения итогового файла CSV на несколько, с заданным максимальным количеством строк.
    (создаваемые файлы автоматически нумеруются)

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