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

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

Запишите у текстуалну датотеку

Кодови испод користе ФилеСистемОбјецт. Да бисте га користили, мораћете да поставите референцу на библиотеку времена извођења ВБ скрипте.

Запишите у нову текстуалну датотеку

Са ЦреатеТектФиле начин ФилеСистемОбјецт можете креирати, а затим додати садржај у текстуалну датотеку:

123456789 Суб ФСОЦреатеАндВритеТоТектФиле ()Затамните ФСО као нови ФилеСистемОбјецтПостави ФСО = ЦреатеОбјецт ("Сцриптинг.ФилеСистемОбјецт")Подесите ФилеТоЦреате = ФСО.ЦреатеТектФиле ("Ц: \ Тест \ ТестФиле.ткт")ФилеТоЦреате.Врите "тест лине"ФилеТоЦреате.ЦлосеЕнд Суб

Имајте на уму да садржај неће бити затворен наводницима.

Запишите у постојећу текстуалну датотеку

За писање у постојећу текстуалну датотеку можете користити ОпенТектФиле начин ФилеСистемОбјецт са ФорВритинг моде.

123456789 Суб ФСОВритеТоТектФиле ()Затамните ФСО као нови ФилеСистемОбјецтПостави ФСО = ЦреатеОбјецт ("Сцриптинг.ФилеСистемОбјецт")Подесите ФилеТоВрите = ФСО.ОпенТектФиле ("Ц: \ Тест \ ТестФиле.ткт", ФорВритинг)ФилеТоВрите.Врите "тест линија"ФилеТоВрите.ЦлосеЕнд Суб

Имајте на уму да вам ФилеСистемОбјецт не мора нужно писати у постојећу текстуалну датотеку. Горњи пример је приказан на други начин у овом коду испод (погледајте други пример у одељку Опсег података до текстуалне датотеке):

123456789 Суб ВритеТоТектФиле ()Дим ФилеНаме Ас СтрингФилеНаме = "Ц: \ Тест \ ТестФиле.ткт"Отворите Име датотеке за излаз као #1Штампа #1, "пробна линија"Затвори #1Енд Суб

Имајте на уму да ће употреба команде Врите уместо Принт довести до додавања садржаја затвореног наводницима. Имајући обе команде у вашем макроу

12 Напишите #1, "пробни ред #1"Одштампајте #1, "пробна линија #2"

резултираће текстуалном датотеком попут ове:

ВБА програмирање | Генератор кода ради за вас!

Додај у текстуалну датотеку

Променом режима у горњем коду у ФорАппендинг, на крај текстуалне датотеке може се додати ред:

1 Подесите ФилеТоВрите = ФСО.ОпенТектФиле ("Ц: \ Тест \ ТестФиле.ткт", ФорАппендинг)

ВритеЛине Метход

Ова метода додаје улазни низ као засебну линију постојећем садржају.

Метод писања

Улазни низ се додаје у исти ред као и постојећи садржај.

Уморни сте од тражења примера ВБА кода? Испробајте АутоМацро!

ВритеБланкЛинес

Ова метода узима број празних редова који се уписују у текстуалну датотеку као параметар.

Овај доњи код илуструје разлику између различитих метода писања:

12345678910111213 Методе подписивања ()Затамните ФСО као нови ФилеСистемОбјецтПостави ФСО = ЦреатеОбјецт ("Сцриптинг.ФилеСистемОбјецт")Подесите ФилеТоВрите = ФСО.ОпенТектФиле ("Ц: \ Тест \ ТестФиле.ткт", ФорАппендинг)ФилеТоВрите.Врите "тест линија #1"ФилеТоВрите.Врите "тестна линија #2"ФилеТоВрите.ВритеБланкЛинес (3)ФилеТоВрите.ВритеЛине "тестна линија #3"ФилеТоВрите.ВритеЛине "тестна линија #4"ФилеТоВрите.ЦлосеЕнд Суб

И резултат:

ВБА програмирање | Генератор кода ради за вас!

Опсег података у текстуалну датотеку

Ако желите да изнесете опсег података са свог радног листа у текстуалну датотеку, можете користити овај код:

12345678910111213141516171819 Суб ОутпутТоТектФиле ()Дим ФилеНаме Ас Стринг, ЛинеТект Ас СтрингДим МиРанге Ас Ранге, и, јФилеНаме = "Ц: \ Тест \ ТестФиле.ткт" 'овде можете навести назив текстуалне датотеке коју желите да креиратеОтворите Име датотеке за излаз као #1Сет МиРанге = Ранге ("дата") 'претпоставља да на радном листу имате опсег података под називом "дата"За и = 1 За МиРанге.Ровс.ЦоунтЗа ј = 1 За МиРанге.Цолумнс.ЦоунтЛинеТект = ИИф (ј = 1, "", ЛинеТект & ",") & МиРанге.Целлс (и, ј) 'текстуална датотека ће имати сепаратор зарезаСледеће јПринт #1, ЛинеТект 'користећи наредбу Врите уместо Принт ће довести до тога да се ваши подаци налазе под наводницима у излазној текстуалној датотециЗатим самЗатвори #1Енд Суб

Низ у текстуалну датотеку

Такође можете сачувати низ података у текстуалну датотеку на следећи начин:

12345678910111213141516 Суб СавеАрраиТоТектФиле ()Дим МиАрраи као варијантаЗатамните ФСО као нови ФилеСистемОбјецтПостави ФСО = ЦреатеОбјецт ("Сцриптинг.ФилеСистемОбјецт")МиАрраи = Поље (Арраи ("00", "01"), Арраи ("10", "11"), Арраи ("20", "21"))Подесите ФилеТоЦреате = ФСО.ЦреатеТектФиле ("Ц: \ Тест \ ТестФиле.ткт")За н = 0 За УБоунд (МиАрраи)ФилеТоЦреате.ВритеЛине МиАрраи (н) (0) & "," & МиАрраи (н) (1)СледећиФилеТоЦреате.ЦлосеЕнд Суб

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

wave wave wave wave wave