ВБА - Читање текстуалне датотеке по ред

Овај водич ће показати како читати садржај из текстуалних датотека ред по ред са ВБА.

Текстуалну датотеку можемо читати као целу датотеку или ред по ред.

Читајте текстуалну датотеку по ред

Текст у текстуалној датотеци обично се састоји од неколико редова, одвојених граничницима. То могу бити зарез („,“), зарез са размаком („,“), тачка -зарез („;“), тачка -зарез са размаком („;“), размак („“), картица (вбТаб ) или у ретким случајевима било који други знак, попут тилде (~). Линије су обично одвојене преломом (вбЦРЛФ).

Најлакши начин да читате текстуалну датотеку ред по ред у нашем радном листу у ВБА је да изаберете прву ћелију у коју желимо да се текст стави, а затим покрените следећи код:

1234567891011 Суб РеадФиле ()Дим стрФиле Ас Стринг, стрЛине Ас СтрингстрФиле = "Ц: \ Тест \ ТестФиле.ткт"Отворите стрФиле за унос као #1Уради до ЕОФ (1)Лине Инпут #1, стрЛинеАцтивеЦелл = стрЛинеАцтивеЦелл.Оффсет (1, 0) .ОдаберитеЛоопЗатвори #1Енд Суб

Ово ће ставити сваки ред текстуалне датотеке у једну ћелију у Екцелу.

Такође можемо читати текстуалну датотеку у ВБА помоћу ФилеСистемОбјецт. У доњем коду користили смо касно везивање са објектом система датотека. Такође можете створити референцу на то у свом ВБА пројекту. За више информација погледајте овде.

123456789101112131415 Суб РеадТектФиле ()Дим стрЛине Ас СтрингЗатамните ФСО као објекатДим ТСО Ас ОбјецтПостави ФСО = ЦреатеОбјецт ("Сцриптинг.ФилеСистемОбјецт")Подесите ТСО = ФСО.ОпенТектФиле ("Ц: \ Тест \ ТестФиле.ткт")Радите док нисте ТСО.АтЕндОфСтреамстрЛине = ТСО.РеадЛинеАцтивеЦелл = стрЛинеАцтивеЦелл.Оффсет (1, 0) .ОдаберитеЛоопТСО.ЗатвориПодесите ОПС = НиштаПоставите ФСО = НиштаЕнд Суб

Можемо створити мало компликованију петљу ако желимо да раздвојимо линије у ћелије по њиховим граничницима. Овде смо користили рано везивање у коду и прогласили објект система датотека.

123456789101112131415161718192021222324 Суб РеадТектФилеВитхСепараторс ()Дим СтрЛине Ас СтрингЗатамните ФСО као нови ФилеСистемОбјецтДим ТСО Ас ОбјецтДим СтрЛинеЕлементс Ас ВариантДим Индек Ас ЛонгДим и Ас ЛонгДим Делимитер Ас СтрингПостави ФСО = ЦреатеОбјецт ("Сцриптинг.ФилеСистемОбјецт")Подесите ТСО = ФСО.ОпенТектФиле ("Ц: \ Тест \ ТестФиле.ткт")Раздвајач = ","Индекс = 1Урадити Док ТСО.АтЕндОфСтреам = НетачноСтрЛине = ТСО.РеадЛинеСтрЛинеЕлементс = Сплит (СтрЛине, Делимитер)За и = ЛБоунд (СтрЛинеЕлементс) За УБоунд (СтрЛинеЕлементс)Ћелије (Индекс, и + 1). Вредност = СтрЛинеЕлементс (и)Затим самИндекс = Индекс + 1ЛоопТСО.ЗатвориПодесите ОПС = НиштаПоставите ФСО = НиштаЕнд Суб

Ово ће резултирати раздвајањем линија у појединачне ћелије у Екцелу према доњој слици.

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave