Овај водич ће показати како писати у текстуалне датотеке користећи ВБА.
Запишите у текстуалну датотеку
Кодови испод користе ФилеСистемОбјецт. Да бисте га користили, мораћете да поставите референцу на библиотеку времена извођења ВБ скрипте.
Запишите у нову текстуалну датотеку
Са ЦреатеТектФиле начин ФилеСистемОбјецт можете креирати, а затим додати садржај у текстуалну датотеку:
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)СледећиФилеТоЦреате.ЦлосеЕнд Суб |