Получаване на списък с файлове в папка и подпапки, макроси на Excel
VBA функция за получаване на списък с файлове от папка,
като се вземе предвид избраната дълбочина на търсене в подпапки
Пример във файл FilenamesCollection.xls показва списък с файлове на празен лист от нова книга (формира заглавия)
Пример във файл FilenamesCollectionEx.xls по-функционален - той, в допълнение към списъка с файлове от папката, показва размера на файла и датата на създаването му, а също така формира хипервръзки към файловете, намерени в клетките.
Списъкът се показва на стартовия лист, параметрите за търсене на файлове се задават в клетките на листа (вижте екранната снимка)
ЗАБЕЛЕЖКА: Ако показвате списък с имена на файлове с картинки (изображения) на лист, след това с помощта на тази добавка можете да вмъкнете самите снимки в клетките на съседната колона (или в бележките към тези клетки)
базирани на функции Имена на файлове Колекция,
както и начин за добавяне на стойности на клетки от намерени файлове към таблицата
'Пример за използване на функция в макрос:
Този код ви позволява да търсите желаните файлове в избраната папка (включително подпапки) и показва получения списък с файлове на лист от работна книга на Excel:
Друг случай на употреба:
PS: Можете да намерите подходящи имена на файлове в колекцията, като използвате следната функция:
Коментари
Благодаря, страхотен макрос
В отговор на:
Андрей, 15 март 2018 - 15:13 # 3
добър ден.
файл 148 знака (руски букви) не се обработва,
и самият файл на сървъра (ако файлът е на работния плот, тогава всичко работи)
каква е максималната дължина на името и възможно ли е да го заобиколите.
Ограничението за пълното име на файла, включително разширението, е 259 знака. Съответно всички файлове с по-дълго име при изпълнение
Задайте curfold = FSO.GetFolder (FolderPath)
ще бъдат игнорирани. Тествано на EX2010, W7 и MSServer 2008. От 28 файла (curfold.Count) само 15 са в действителност в колекцията (curfold.items (1). Curfold.items (15))
И как да направя макрос, така че да ми показва само празни папки?
Няма ограничения за дължината на името на файла (поне в продължение на много години на използване на този код на хиляди компютри, не съм срещал никакви проблеми)
добър ден.
файл 148 знака (руски букви) не се обработва,
и самият файл на сървъра (ако файлът е на работния плот, тогава всичко работи)
каква е максималната дължина на името и възможно ли е да го заобиколите.
Адаптиран за достъп - всичко работи, благодаря, помогна много
Ринат, вижте макроса за обработка на файлове от папка.
Там се показва диалогов прозорец с папка и всички файлове в него се обработват (независимо от имената на файловете)
добър ден!
Такъв въпрос, в отдела всеки месец служител поддържа отчет за работата си в табличен вид във файл на Excel, всеки в своя файл и шефовете трябва да въведат тези отчети в обобщената си таблица за себе си, т.е.копират докладвайте данни от файловете на всеки служител в отделен файл. Създадох макрос, за да копирам данните от файловете на всеки служител във файловата таблица за шефовете, като посочих пътя към всеки файл. Но в същото време възникват определени неудобства, всеки месец трябва да пререгистрирате пътищата към файловете, тъй като следващия месец се създават нови файлове според отчетите и пътищата към тях трябва да се актуализират. Моля, кажете ми как можете да го направите, така че пътищата до файловете да не са обвързани с конкретно местоположение на файла, но например като посочите месеца и годината, можете да генерирате един отчет за определен месец. Благодаря предварително!
Да, можем да направим такъв макрос по поръчка.
Минималната стойност на поръчката е 1500 рубли.
добър ден
кажете ми дали е възможно да напиша макрос за следните цели
необходимо е имената на снимковите файлове да се поберат в клетката, която е маркирана, ако изберете няколко от тях, тогава всичко се добавя разделено със запетаи или запетая само името и разширението на файла
например как да вмъкнете снимка в клетка, но не е вмъкната снимка, а именно името
или например, въз основа на вашите FilenamesCollectionEx.xls, намери всички файлове на диска/папката, от които се нуждаете - щракнете върху файла и трябва да изберете клетката, където да въведете името на файла
Благодаря предварително
По някаква причина размерът на файла ми в байтове се показва напълно различно, понякога дори с отрицателна стойност.
Пример:
1. теглото на файла е 3 840 327 KB или 3,66 GB, а таблицата дава "-362 472 675"
2. тегло на файла 5 082 087 KB или 4,84 GB, таблицата дава "909 089 137"
Василий, да, можеш да добавиш.
Можете да видите примерен код тук:
http://excelvba.ru/code/MCI
Добър ден! Кажете ми дали е възможно да добавите колоните "продължителност" и "ширина на рамката", които са в тези файлове?
Здравей Елизабет.
Причините може да има няколко:
- проблемен файл или файл, до който нямате достъп (грешка 53 - файлът не е намерен)
- твърде дълго име на папка (много нива на влагане) и/или файл
- срив на файлова система
- грешка в макрос (нещо не е взето предвид в кода)
Не се предоставя техническа поддръжка за безплатни макроси
Ако сте готови да платите за помощ, обадете се по Skype, мога да се свържа с вашия компютър и да поправя всичко.
Игор, благодаря ти много за тази работа!