У наставку ћемо погледати програм у Екцел ВБА то записује Екцел опсег у текстуалну датотеку ЦСВ (вредност раздвојена зарезима).
Ситуација:
Поставите командно дугме на свој радни лист и додајте следеће редове кода:
1. Прво, декларишемо променљиву миФиле типа Стринг, објекат зван рнг типа Ранге, променљиву целлВалуе типа Вариант, променљиву звану и типа Интегер и променљиву ј типа Интегер. Овде користимо варијаблу Вариант јер варијабла Вариант може садржати било коју врсту вредности.
Дим миФиле Ас Стринг, рнг Ас Ранге, целлВалуе Ас Вариант, и Ас Интегер, ј Ас Интегер
2. Морамо навести пуну путању и назив датотеке.
миФиле = Апплицатион.ДефаултФилеПатх & "\ салес.цсв"
Напомена: Својство ДефаултФилеПатх враћа подразумевану путању до датотеке. Да бисте променили подразумевану локацију датотеке, на картици Датотека кликните на Опције, Сачувај.
3. Покрећемо објекат опсега рнг са изабраним опсегом.
Сет рнг = Селецтион
4. Додајте следећи кодни ред:
Отворите миФиле за излаз као #1
Напомена: ова изјава дозвољава писање датотеке. Током остатка нашег кода можемо да називамо датотеку #1. Ако датотека већ постоји, биће избрисана и креираће се нова датотека са истим именом.
5. Покрените двоструку петљу.
За и = 1 За рнг.Ровс.Цоунт
За ј = 1 За рнг.Цолумнс.Цоунт
Напомена: рнг.Ровс.Цоунт враћа број редова (17 у овом примеру), а рнг.Цолумнс.Цоунт враћа број колона (4 у овом примеру).
6. Екцел ВБА записује вредност ћелије у променљиву целлВалуе.
целлВалуе = рнг.Целлс (и, ј) .Валуе
7. Додајте следеће редове кода да бисте записали вредност целлВалуе у текстуалну датотеку.
Ако је ј = рнг.Цолумнс.Цоунт Тада
Напишите #1, целлВалуе
Иначе
Напишите #1, целлВалуе,
Крај Ако
Објашњење: због наредбе Иф Тхен Елсе, Екцел ВБА само започиње нову линију (Врите #1, целлВалуе) када је ј једнак броју колона (последња вредност у реду). Да бисте одвојили вредности зарезом, користите Врите #1, целлВалуе, (са зарезом).
8. Не заборавите да затворите обе петље.
Даље ј
Затим сам
9. Затворите датотеку.
Затвори #1
10. Одаберите податке и кликните командно дугме на листу.
Резултат: