Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2013, 13:36   #1
dfc
Новичок
Джуниор
 
Регистрация: 10.10.2013
Сообщений: 2
По умолчанию Расчёт количества файлов в папке без учёта скрытых файлов

Здравствуйте,
прошу помочь решить проблему.
В папке С:\Orders\ сохраняются заявки в формате .xlsx
Стоит задача посчитать при помощи макроса количество заявок находящихся в указанной папке без учёта скрытых файлов (резервных копий открытых книг) и вывести результат в ячейку рабочей книги.
Сейчас использую макрос:
Код:
Sub Orders()
    FolderPath = "C:\Orders\"
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Ord# = FSO.GetFolder(FolderPath).Files.Count
    Range("A1").Select
    ActiveCell.FormulaR1C1 = Ord#
End Sub
Но если какие-то книги из указанной папки остались открытыми во время расчёта, следствием чего является наличие в папке скрытых временных резервных копии этих фалов, то они тоже учитываются при подсчёте количества файлов, а это ненужно.

Последний раз редактировалось dfc; 11.10.2013 в 13:03.
dfc вне форума Ответить с цитированием
Старый 10.10.2013, 14:14   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а так?
Код:
Sub Orders()
  Dim c As Long
  [a1] = 0
  If Dir("C:\Orders\*.xlsx") = "" Then Exit Sub Else c = 1
  Do
    If Dir = "" Then Exit Do Else c = c + 1
  Loop Until False
  [a1] = c
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 11.10.2013, 12:06   #3
dfc
Новичок
Джуниор
 
Регистрация: 10.10.2013
Сообщений: 2
По умолчанию

Большое спасибо! Работает. В ходе поиска решения получил ещё один работающий вариант. Привожу для информации:

Код:
Sub Get_All_File_from_Folder()  
    Dim sFolder As String, sFiles As String  
    With Application.FileDialog(msoFileDialogFolderPicker)  
        If .Show = False Then Exit Sub  
        sFolder = .SelectedItems(1)  
    End With  
    sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)  
    Application.ScreenUpdating = False  
    sFiles = Dir(sFolder & "*.xls*")  
    Do While sFiles <> ""  
        If GetAttr(sFolder & sFiles) <> vbHidden Then li = li + 1  
        sFiles = Dir  
    Loop  
    ActiveCell.Value = li  
    Application.ScreenUpdating = True  
End Sub
От The_Prist

http://www.excel-vba.ru/forum/index....12697#msg12697

Последний раз редактировалось dfc; 11.10.2013 в 13:02.
dfc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подсчет количества файлов в папке aldeano Microsoft Office Excel 1 09.06.2011 16:12
Определение количества файлов в папке по таймеру artemavd Общие вопросы Delphi 3 29.10.2010 10:43
Отображение скрытых файлов и папок и отображение розширения всех файлов beegl Общие вопросы Delphi 10 14.12.2008 22:02
Отслеживает появление в папке файлов. слежение за определенным файлом в определенной папке. RammFan Win Api 1 09.06.2007 11:09