Наведите датотеке у фасцикли користећи ВБА у програму Мицрософт Екцел

Anonim

У овом чланку ћемо креирати макро за попис свих датотека у фасцикли.

Приликом покретања макроа, назив датотеке заједно са путањом до датотеке ће се приказивати почевши од ћелије А17.

Логичко објашњење

У овом чланку смо креирали два макроа, „датотеке подмапе“ и „узимајући_филелисту_у_мапу“.
Макро „субфолдер_филес“ узима путању фасцикле и логичку вредност као улазе и враћа назив датотеке у фасцикли.

„Геттинг_филелист_ин_фолдер“ се користи за позивање макроа „субфолдер_филес“. Пружа вредност путање до мапе макроу, са логичком вредношћу подешеном „труе“. Такође, када су потребна имена датотека у потфасциклама, онда додељујемо логичку вредност 'труе'.

Објашњење кода

фолдер_патх = Схеет1.ТектБок1.Валуе
Горњи код се користи за издвајање вредности низа из оквира за текст.

Позовите датотеке подмапе (путања до фасцикле, тачно)
Горњи код се користи за позивање макроа „датотеке подмапе“. Он додељује путању до фасцикле и поставља својство „инцлуде_субфолдер“ као тачно.

Сет фсо = ЦреатеОбјецт ("сцриптинг.филесистемобјецт")
Горњи код се користи за креирање објекта датотечног система.

Постави подмапу1 = фсо.гетфолдер (путања до фасцикле)
Горњи код се користи за креирање објекта дефинисане фасцикле.

За сваку фасциклу1 У подмапи1.подмапе
Позовите датотеке подмапе (фасцикла1, тачно)
Следећи
Горњи код се користи за преглед свих подмапа унутар главне фасцикле.

Дир (фолдерпатх1 & "*.клск")
Горњи код се користи за добијање Екцел датотеке.

Док је назив датотеке ""
цоунт1 = цоунт1 + 1
РеДим Пресерве филеарраи (1 За пребројавање1)
филеарраи (цоунт1) = назив датотеке
име датотеке = Дир ()
Венд

Горњи код се користи за креирање низа који се састоји од свих имена датотека присутних у фасцикли.

За и = 1 За УБоунд (низ датотека)
Ћелије (ластров, 1) .Варуе = фолдерпатх1 & филеарраи (и)
ластров = ластров + 1
Следећи

Горњи код се користи за додељивање назива датотеке унутар низа радној свесци.

Молимо следите доле за код

 Опција Експлицитне подмапе_датотеке (фолдерпатх1 као варијанта, опционално инцлуде_субфолдер као логичко) 'Провера да ли треба укључити потфасциклу или не Иф инцлуде_субфолдер Тхен' Декларисање променљивих Дим филенаме, филеарраи () Ас Стринг Дим ластров, цоунт1, и Ас Интегер 'Провера да ли путања фасцикле садржи обрнута коса црта као последњи знак Иф Ригхт (фолдерпатх1, 1) "\" Тхен фолдерпатх1 = фолдерпатх1 & "\" Енд Иф 'Добијање имена датотеке прве датотеке у дефинисаној путањи фасцикле филенаме = Дир (фолдерпатх1 & "*.клск")' Добијање броја реда последње ћелије ластров = АцтивеЦелл.СпециалЦеллс (клЦеллТипеЛастЦелл) .Ров + 1 цоунт1 = 0 'Понављање свих датотека у фасцикли Док је назив датотеке "" цоунт1 = цоунт1 + 1 РеДим Очувај датотечни низ (1 За пребројавање1) датотечни низ ( цоунт1) = назив датотеке филенаме = Дир () Венд Он Еррор Иди на ласт 'Додавање имена датотеке у радну свеску За и = 1 У УБоунд (филеарраи) ћелије (ластров, 1) .Вредност = патхп фолдер1 & филеарраи (и) ластров = ластров + 1 Нект Заврши ако последњи: Заврши Суб Суб гет_филелист_ин_фолдер () 'Декларисање променљивих Дим фолдер_патх Ас Стринг Дим фсо Ас Објецт, фолдер1, субфолдер1 Ас Објецт' Добијање путање до фолдера фолдер_патх = Схеет1.ТектБок1.Валуе 'Провера да ли путања фасцикле садржи повратну црту као последњи знак Иф Ригхт (фолдер_патх, 1) " \ "Затим фолдер_патх = фолдер_патх &" \ "Енд Иф 'Позивање мапе подфолдер_филес Позови субфолдер_филес (фолдер_патх, Труе)' Креирање објекта објекта датотечног система Сет фсо = ЦреатеОбјецт (" сцриптинг.филесистемобјецт ") Подмени фолдер1 = фсо.гетфолдер (фолдер_патх) 'Понављање кроз сваку подмапу За сваку фасциклу1 У подмапи1.подмапе Позовите датотеке подмапе (фасцикла1, тачно) Следећа завршна подмапа 

Ако вам се допао овај блог, поделите га са пријатељима на Фацебооку. Такође, можете нас пратити на Твиттер -у и Фацебоок -у.

Волели бисмо да чујемо од вас, јавите нам како можемо побољшати наш рад и учинити га бољим за вас. Пишите нам на веб локацији е -поште