Процес конверзије из евиденције МС Екцел-а© на АДИФ је релативно једноставна и може се обавити уз мало програмирања ВБА. Кроз овај веза могу да се односе на спецификације АДИФ 1.0 који се користи већина пријавите, је важно да прочитате овај документ.
Да бисте започели процес конверзије на основу овог упутства почети са стварањем фајла у МС Екцел©. У првом платно Упишите име поља ћете желите да увезете (Молимо проверите АДИФ 1.0 имена поља). Чак иу првом реду, тип “АДИФ РАВ” на последњу ћелију, Ово је место где ће текст бити написан у АДИФ.
Радни лист да изгледа овако (али и даље нема података о линији 2). Иако је АДИФ формат не прецизира минимални број поља, најмање вашем дневнику КСО мора да има вредности позива, КСО_Дате, Тиме_Он, Бенд и режим.
Затим изаберите цео радни лист и формат ћелије као текст.
Сачувајте датотеку као клс2ади.клс (радни лист у Екцел©)
Хајде сада пишу и убаците код у ВБА. Идите на Тоолс / Макро и кликните на дугме Висуал Басиц Едитор (АЛТ Ф11).
У ВБА едитору двапут кликните 'ТхисВоркбоок’ који је у "Пројекту – ВБАПројецт '. Ово је место где можете добити главни блок кода који ће радити када поново отворите овај фајл.
Блок кода који следи поставља неке варијабле и позива функцију фЦампоАдифВалидо (линија 05) да ће проверити да ли имена поља које је у првом реду одговара спецификацији АДИФ. Ако су све имена поља тачна функција позива процедуру пЕсцревеАдиф (линија 09) ће написати пријавити АДИФ, Ако поље има неважеће име функције показује поруку о грешци (линија 07) и завршава се.
Цопи / пасте или упишите следећи код:
Привате Суб Воркбоок_Опен() Као Боолеан Дим бНомеДоЦампоВалидо (цонЛинхаИнициал) сУлтимаЦолуна = фКуалЕАУлтимаЦолуна(цонЦолунаИнициал) бНомеДоЦампоВалидо = фЦампоАдифВалидо(цонЦолунаИнициал, сУлтимаЦолуна) Ако бНомеДоЦампоВалидо = Фалсе Затим ("Пронађено неважећи имена поља" & вбЦрЛф & "Уклоните колоне испуњене у црвеном!") Друго
У ВБА едитору, кликните на дугме Уметни / Модул. Да ли је ово модул ће добити преосталих код који се зове по главном блоку.
Константе цонЛинхаИнициал (линија 02 следећи блок) и цонЦолунаИнициал (линија 03 следећи блок) дефинисати линију 2 (Таблица) имају прву регистрацију и да колона (Таблица) прво поље.
Функције фКуалЕАУлтимаЛинха (линија 08 следећи блок) и фКуалЕАУлтимаЦолуна (линија 17 следећи блок) ће одредити последњи ред и колона података. Ово захтева празна ћелија значи крај дневник записа.
Функција фЦампоАдифВалидо (линија 05 до Блоцо претходна) тестира валидност имена поља. Циклус "Изабери предмет сНомеДоЦампо’ (линија 31 следећи блок) више поља могу да се додају према спецификацији АДИФ.
Поступак пЕсцревеАдиф (линија 09 до Блоцо претходна) ће написати текст у колони која има АДИФ “АДИФ РАВ” у првом реду. У овом поступку се узима из поља Ифен КСО_ДАТЕ, две тачке на терену и додао ТИМЕ_ОН М на крају поља БАНД. Да би се то више макроа строжије услове могу се изрећи за верификацију података у овом поступку.
Цопи / пасте или упишите следећи код у модулу:
Оптион Екплицит 2 Јавни Цонст цонЦолунаИнициал Ас Стринг = "A" Ас Интегер јавног иУлтимаЛинха (иПримеираЛинха Ас Интегер) Ас Интегер (Фолха1.Целлс(иВалРецебидо, "A")) > 0 иВалРецебидо = иВалРецебидо + 1 Петља - 1 Енд Фунцтион (сПримеираЦолуна Ас Стринг) Стринг (сПримеираЦолуна) До Док Лен(Фолха1.Целлс(1, Цхр(иВалРецебидо))) > 0 иВалРецебидо = иВалРецебидо + 1 Петља (иВалРецебидо - 1) Енд Фунцтион (сПримеираЦолуна Ас Стринг, сУлтимаЦолуна Ас Стринг) Булова (сПримеираЦолуна) Да АСЦ(сУлтимаЦолуна) сНомеДоЦампо = ЛЦасе(Фолха1.Целлс(1, иЦолунаЦорренте - 64)) Изаберите Цасе сНомеДоЦампо "група": фЦампоАдифВалидо = Труе "позив": фЦампоАдифВалидо = Труе "ЦКЗ": фЦампоАдифВалидо = Труе "начин": фЦампоАдифВалидо = Труе "ксо_дате": фЦампоАдифВалидо = Труе "рст_рцвд": фЦампоАдифВалидо = Труе "рст_сент": фЦампоАдифВалидо = Труе "СРКС": фЦампоАдифВалидо = Труе "СТКС": фЦампоАдифВалидо = Труе "тиме_он": фЦампоАдифВалидо = Труе "адиф сирово" фЦампоАдифВалидо = Труе - 64 Случај Елсе (1, иЦолунаЦорренте - 64).Интериор.Цолор = РГБ(255, 0, 0) фЦампоАдифВалидо = Фалсе () Ас Интегер Дим иЛинхаЦорренте "" За иЦолунаЦорренте = АСЦ(цонЦолунаИнициал) Да АСЦ(сУлтимаЦолуна) - 1 Ако ЛЦасе(Фолха1.Целлс(1, Цхр(иЦолунаЦорренте))) = "група" Онда (иЛинхаЦорренте, Цхр(иЦолунаЦорренте)) & "П" Друго (Фолха1.Целлс(1, Цхр(иЦолунаЦорренте))) = "ксо_дате" Онда (Фолха1.Целлс(иЛинхаЦорренте, Цхр(иЦолунаЦорренте)), "-", "") Друго (Фолха1.Целлс(1, Цхр(иЦолунаЦорренте))) = "тиме_он" Онда (Фолха1.Целлс(иЛинхаЦорренте, Цхр(иЦолунаЦорренте)), ":", "") Друго (иЛинхаЦорренте, Цхр(иЦолунаЦорренте)) Крај Ако & "<" & ЛЦасе(Фолха1.Целлс(1, Цхр(иЦолунаЦорренте))) & ":" & Само(сТектоНаЦелула) & ">" & сТектоНаЦелула (иЛинхаЦорренте, иАдифРав) = СЛинхаЕмАдиф & "<" & "ЕОР" & ">" Следећи
Кликните на Филе / Саве клс2ади.клс и затвори ВБА едитор.
Сада копирате податке из својих досијеа МС Екцел© желите да конвертујете у одговарајућим колонама, Опасно се на крају и одустао од МС Екцел©.
Можда ћете морати да промените подешавања за законом прописаном МС Екцел© да покренете макрое, ако је потребно отићи на Тоолс / Мацро и ставку Безбедност, одабира нижи ниво. Ово је написано за МС Екцел© ем МС Виндовс КСП© (како у португалском верзији). Они користе овај код ноутра Ваи лингуа, На пример Енглески, заменити Схеет1 термин '’ Пор 'Схеет1’
Када двапут кликните на датотеку клс2ади.клс, код ми само убаци ће бити покренути и колона “АДИФ РАВ” је наш Пријава АДИФ формату.
Сада да се заврши, изабрали садржај колоне “АДИФ РАВ” и копије (Цтрл Ц), Блоцо старт или Напомене (Блокчић за белешке) и Цолас (Цтрл В). Сачувајте фајл са екстензијом додатним.
Овај узорак кода је слободан да користи, могу слободно користити. То је веома једноставан пример шта може да се врши помоћу ВБА (Висуал Басиц фор Апплицатионс). Надопунити ову провера кода са прецизнијим, посебно у ксо_дате поља '’ е 'тиме_он', где су формати морају да се подударају са спецификацијама АДИФ. Ако приметите било какве грешке или имате било каквих питања, не оклевајте да коментарише. Надам се да ће чланак бити од користи.