Vba excel количество файлов в папке

Этот макрос выводит информацию о папке — например, её размер, и количество файлов в ней:

Sub ПодсчётКоличестваФайловВПапке()
    ' задаём папку
    FolderPath = "C:Documents and SettingsAdminРабочий стол"
 
    ' получаем характеристики папки
    Set FSO = CreateObject("Scripting.FileSystemObject")
    КоличествоФайловВПапкеБезУчётаПодпапок = FSO.GetFolder(FolderPath).Files.Count
    КоличествоПодпапок = FSO.GetFolder(FolderPath).SubFolders.Count
    РазмерПапкиВБайтах = FSO.GetFolder(FolderPath).Size
 
    ' подсчитываем количество файлов с учётом файлов в подпапках
    КоличествоФайловВПапкеСУчётомПодпапок = FilesCount(FolderPath)
 
    Debug.Print "В папке найдено " & КоличествоФайловВПапкеБезУчётаПодпапок & " файлов и " & _
                КоличествоПодпапок & " подпапок. Всего файлов: " & КоличествоФайловВПапкеСУчётомПодпапок
    Debug.Print "Папка занимает на диске " & РазмерПапкиВБайтах & " байтов (" & _
                FileOrFolderSize(РазмерПапкиВБайтах) & ")"
End Sub

Результат работы кода (в окне Immediate):

В папке найдено 186 файлов и 31 подпапок. Всего файлов: 4216
Папка занимает на диске 193158100 байтов (184 Мб)

Если же вам надо вывести список файлов на лист Excel — смотрите функцию FilenamesCollection:
http://excelvba.ru/code/FilenamesCollection

Код необходимых функций для подсчёта файлов:

Function FilesCount(ByVal FolderPath As String, Optional ByVal SearchDeep As Long = 999) As Long
    ' Получает в качестве параметра путь к папке FolderPath,
    ' и глубину поиска SearchDeep в подпапках (если SearchDeep=1, то подпапки не просматриваются).
    ' Возвращает количество найденных файлов
    ' (применяется рекурсивный вызов процедуры GetAllFileNamesUsingFSO)

    Set FSO = CreateObject("Scripting.FileSystemObject")    ' создаём экземпляр FileSystemObject
    FilesCount = GetFilesCountUsingFSO(FolderPath, FSO, SearchDeep)       ' подсчёт файлов
    Set FSO = Nothing
End Function
 
Function GetFilesCountUsingFSO(ByVal FolderPath As String, ByRef FSO, ByVal SearchDeep As Long)
    ' перебирает все файлы и подпапки в папке FolderPath, используя объект FSO
    ' перебор папок осуществляется в том случае, если SearchDeep > 1
    ' добавляет пути найденных файлов в коллекцию FileNamesColl
    'On Error Resume Next:
    Set curfold = FSO.GetFolder(FolderPath)
    If Not curfold Is Nothing Then    ' если удалось получить доступ к папке
        GetFilesCountUsingFSO = curfold.Files.Count
        SearchDeep = SearchDeep - 1    ' уменьшаем глубину поиска в подпапках
        If SearchDeep Then    ' если надо искать глубже
            For Each sfol In curfold.SubFolders    ' перебираем все подпапки в папке FolderPath
                GetFilesCountUsingFSO = GetFilesCountUsingFSO + GetFilesCountUsingFSO(sfol.Path, FSO, SearchDeep)
            Next
        End If
        Set fil = Nothing: Set curfold = Nothing    ' очищаем переменные
    End If
End Function

Для вывода понятной (отформатированной) информации об объёме папки или файла используется функция FileOrFolderSize:

Function FileOrFolderSize(ByVal s) As String
    Size = Fix(Val(s)):    ' If s = "" Then FileOrFolderSize = "<нет доступа>"
    Select Case Size
        Case Is < 1000: FileOrFolderSize = Size & " байт"
        Case Is < 10000: FileOrFolderSize = FormatNumber(Size / 1024, 1) & " Кб"
        Case Is < 1000000: FileOrFolderSize = FormatNumber(Size  1024, 0) & " Кб"
        Case Is < 10000000: FileOrFolderSize = FormatNumber(Size / 1024 / 1024, 1) & " Mб"
        Case Is < 1000000000: FileOrFolderSize = FormatNumber(Size / 1024 / 1024, 0) & " Мб"
        Case Else: FileOrFolderSize = FormatNumber(Size / 1024 / 1024 / 1024, 1) & " Гб"
    End Select
End Function
 

Kometa-K

Пользователь

Сообщений: 8
Регистрация: 11.08.2019

#1

11.08.2019 10:58:29

Добрый день.

Подскажите, пожалуйста, логику алгоритма подсчета количества файлов определенного типа в папке. Посчитать все файлы получается. А вот с указанным расширением ни как. Не могу понять принцип.

Код
Dim X As Variant
X = TextBox1.Text

Set FSO = CreateObject("Scripting.FileSystemObject")
Y = FSO.GetFolder(X).Files.Count

MsgBox Y
 

PDO

Пользователь

Сообщений: 39
Регистрация: 16.04.2019

Проверять имя файлов на содержание нужных символов, после чего сделать обычный счетчик i++, который можно вывести.

Изменено: PDO11.08.2019 11:07:04

 

БМВ

Модератор

Сообщений: 21378
Регистрация: 28.12.2016

Excel 2013, 2016

использовать другой объект

https://www.script-coding.com/WSH/Shell.html#5.3.3

.
или в цикле перебирать и считать нужные.

По вопросам из тем форума, личку не читаю.

 

Все_просто

Пользователь

Сообщений: 1042
Регистрация: 10.06.2013

#4

11.08.2019 11:17:13

Можно без лишних объектов:

Код
Sub testDirFunction()
    Dim counter
    Dim fn
    
    ChDir Environ("homepath") & Application.PathSeparator & _
        "Downloads"
        
    fn = Dir("*.xlsx")
    counter = 0
    
    While Len(fn) > 0
    
    counter = counter + 1
    fn = Dir()
    Wend
    MsgBox "Total count: " & counter
End Sub

С уважением,
Федор/Все_просто

 

БМВ

Модератор

Сообщений: 21378
Регистрация: 28.12.2016

Excel 2013, 2016

#5

11.08.2019 11:30:27

Цитата
Все_просто написал:
Можно без лишних объектов:

можно, но не проще

Код
X = TextBox1.Text
Set objFolderItems = CreateObject("Shell.Application").Namespace(X).Items()
objFolderItems.Filter 64, "*.xlsx"
MsgBox "Total count: " &  objFolderItems.Count

По вопросам из тем форума, личку не читаю.

 

Kometa-K

Пользователь

Сообщений: 8
Регистрация: 11.08.2019

БМВ,
благодарю. Круто, конечно.

Вот только как научится это понимать самому…

 

sokol92

Пользователь

Сообщений: 4445
Регистрация: 10.09.2017

Навыки программирования плюс практика и еще раз практика (посмотрите на число сообщений Михаила). :)
В #5 использован синхронный метод Filter, поэтому не нужны «подпрыжки» с задержками, которые мы обычно видим в примерах с Shell.Application.
Функция dir из #4 не справится, если в пути к папке или именах файлов будут символы, которые не вписываются в кодовую страницу Windows по умолчанию.

 

БМВ

Модератор

Сообщений: 21378
Регистрация: 28.12.2016

Excel 2013, 2016

#8

11.08.2019 14:14:52

Цитата
sokol92 написал:
(посмотрите на число сообщений Михаила).  

да просто разговорчивый медведь попался, особенно когда пыхнет  :D

По вопросам из тем форума, личку не читаю.

 

Kometa-K

Пользователь

Сообщений: 8
Регистрация: 11.08.2019

Будете у нас в Ростове, милости просим заходите на плюшки)

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

#10

12.08.2019 09:52:05

Может пригодится, пересчитывает все расширения в указанной папке.

Код
Sub main()
    Dim objFSO As Object
    Dim ifile As Object, ipath$, txt$
    Dim objDic As Object, ikey
    ipath = "Путь к папке"
    Set objFSO = CreateObject("scripting.filesystemobject")
    Set objDic = CreateObject("Scripting.Dictionary")
    For Each ifile In objFSO.GetFolder(ipath).Files
        txt = Right(ifile.Name, Len(ifile.Name) - InStrRev(ifile.Name, "."))
        objDic.Item(txt) = objDic.Item(txt) + 1
    Next ifile
    txt = ""
    For Each ikey In objDic.Keys
        txt = txt & ikey & " : " & objDic.Item(ikey) & "шт." & vbNewLine
    Next
    MsgBox txt
End Sub

Изменено: Nordheim12.08.2019 13:16:24

«Все гениальное просто, а все простое гениально!!!»

 

Советник I категории

Пользователь

Сообщений: 39
Регистрация: 20.01.2020

#11

24.01.2020 11:36:29

Цитата
Все_просто написал:
Можно без лишних объектов:

вот, по этим мотивам сделал макрос вставляющий строки сверху шапки в зависимости от кол-ва файлов в папке:

Код
' проверяем кол-во файлов в папке, и если их больше возможного- вставляем строки
' чтобы неналазило на таблицу
Sub ВставкаСтрок()
    Dim counter
    Dim fn
    Dim myFSO As Object, myFolder As Object, myFile As Object
    
    
    If ActiveSheet.Name = "спецификация" Then
     Set c_naim = ActiveSheet.Cells.Find(what:="Наименование товара", LookAt:=xlWhole)
        naim_row = c_naim.Row
      End If
      
      
     '3. Создание объекта для работы с папками и файлами.
    Set myFSO = CreateObject(Class:="Scripting.FileSystemObject")
 
    ChDir myFSO.GetFolder(ActiveWorkbook.Path)
    
    fn = Dir("*.xls")
    counter = 0
     
    While Len(fn) > 0
     
    counter = counter + 1
    fn = Dir()
    Wend
    ' счётчик файлов: counter
    'макс. возиможное колическтво: naim_row - 6
    'сколько строк вставляем: counter - naim_row - 6  
    
    
    'eсли макс возможное меньше или равно счетчику:
    
   If naim_row - 6 <= counter - 1 Then
   
   
   ' то сумма строк будет равна :
            counter_ins_row = counter - (naim_row - 6)
            For i = 1 To counter_ins_row
                Rows(naim_row).Insert
            Next
        End If       
   ' Stop
End Sub

Все_просто, спасибо за идею, выручили сильно,- спасибо! чмоки)
зы: только этот макрос отдельно не запускался из другого, писал: «отсутствует макрос такойто…»… пришлось вписать в основной.

Изменено: Советник I категории24.01.2020 12:11:46

I want to know how many files in the folders and their subfolders. I search here and some google pages but I didn’t find what I’m looking for. The closest thing I’ve been looking for is this.

    Sub MainList()
    'Updateby Extendoffice
    Set folder = Application.FileDialog(msoFileDialogFolderPicker)
    If folder.Show <> -1 Then Exit Sub
    xDir = folder.SelectedItems(1)
    Call ListFilesInFolder(xDir, True)
    End Sub

    Sub ListFilesInFolder(ByVal xFolderName As String, ByVal xIsSubfolders As Boolean)
    Dim xFileSystemObject As Object
    Dim xFolder As Object
    Dim xSubFolder As Object
    Dim xFile As Object
    Dim rowIndex As Long
    Set xFileSystemObject = CreateObject("Scripting.FileSystemObject")
    Set xFolder = xFileSystemObject.GetFolder(xFolderName)
    rowIndex = Application.ActiveSheet.Range("A65536").End(xlUp).Row + 1
    For Each xFile In xFolder.Files
      Application.ActiveSheet.Cells(rowIndex, 1).Formula = xFile.Name
      rowIndex = rowIndex + 1
    Next xFile
    If xIsSubfolders Then
      For Each xSubFolder In xFolder.SubFolders
        ListFilesInFolder xSubFolder.Path, True
      Next xSubFolder
    End If
    Set xFile = Nothing
    Set xFolder = Nothing
    Set xFileSystemObject = Nothing
    End Sub

    Function GetFileOwner(ByVal xPath As String, ByVal xName As String)
    Dim xFolder As Object
    Dim xFolderItem As Object
    Dim xShell As Object
    xName = StrConv(xName, vbUnicode)
    xPath = StrConv(xPath, vbUnicode)
    Set xShell = CreateObject("Shell.Application")
    Set xFolder = xShell.Namespace(StrConv(xPath, vbFromUnicode))
    If Not xFolder Is Nothing Then
      Set xFolderItem = xFolder.ParseName(StrConv(xName, vbFromUnicode))
    End If
    If Not xFolderItem Is Nothing Then
      GetFileOwner = xFolder.GetDetailsOf(xFolderItem, 8)
    Else
      GetFileOwner = ""
    End If
    Set xShell = Nothing
    Set xFolder = Nothing
    Set xFolderItem = Nothing
    End Function

But it gives me the files list. I want to know how many file is there each folder? Do you have a any suggestion?

EDİT:

-MainFolder
  -- SubFolder1 -- Has .. file
  -- SubFolder2 -- Has .. file
     --SubFolder2 subfolder -- Has .. file
     --SubFolder2 subfolder1 -- Has .. file
     --SubFolder2 subfolder2 -- Has .. file
  -- SubFolder3 -- Has .. file
.
.
.

I want to something like this structure in excel worksheet.

Count Files in Folder From a List of File Paths

enter image description here

  • The given list of file paths is in A2:A20.
  • The result of the 1st procedure, CountFilesPerFolder, is in B2:B20.
  • The result of the 2nd procedure, ListFilesCountPerFolder, is in E2:F8.

The Excel Formula to Get the Folder Paths (Evaluate)

=LEFT(A2,FIND("*",SUBSTITUTE(A2,"","*",LEN(A2)-LEN(SUBSTITUTE(A2,"",""))))-1)

The Code

Option Explicit


Sub CountFilesPerFolder()
    
    ' Source
    Const sCol As String = "A"
    ' Destination
    Const dCol As String = "B"
    ' Both
    Const fRow As Long = 2
    
    ' Reference the worksheet.
    Dim ws As Worksheet: Set ws = ActiveSheet ' improve!
    
    ' Reference the one-column range containing the file paths by using
    ' the End property to calculate the last row.
    Dim slRow As Long: slRow = ws.Cells(ws.Rows.Count, sCol).End(xlUp).Row
    Dim rCount As Long: rCount = slRow - fRow + 1
    If rCount < 1 Then Exit Sub ' column range is empty
    Dim srg As Range: Set srg = ws.Cells(fRow, sCol).Resize(rCount)
    Dim sAddress As String: sAddress = srg.Address
    
    ' Write the folder paths to an array by using the Evaluate method.
    Dim Data As Variant
    Data = ws.Evaluate("LEFT(" & sAddress & ",FIND(""*"",SUBSTITUTE(" _
        & sAddress & ","""",""*"",LEN(" & sAddress & ")-LEN(SUBSTITUTE(" _
        & sAddress & ","""",""""))))-1)")
        
    ' Write the folder paths from the array to the keys of a dictionary
    ' using its items to count the files.
    Dim dict As Object: Set dict = CreateObject("Scripting.Dictionary")
    dict.CompareMode = vbTextCompare
    Dim Key As Variant
    Dim r As Long
    For r = 1 To rCount
        Key = Data(r, 1)
        If Not IsError(Key) Then
            If Len(Key) > 0 Then
                dict(Key) = dict(Key) + 1
            End If
        End If
    Next r
    If dict.Count = 0 Then Exit Sub ' only blanks and error values
    
    ' Write the files count from the items of the dictionary
    ' to the array (overwriting the folder paths).
    For r = 1 To rCount
        Key = Data(r, 1)
        If dict.Exists(Key) Then
            Data(r, 1) = dict(Key)
        Else
            Data(r, 1) = Empty
        End If
    Next r
    
    ' Write the files count from the array to the destination one-column range
    ' and clear the contents below.
    With srg.EntireRow.Columns(dCol)
        .Resize(rCount).Value = Data
        .Resize(ws.Rows.Count - .Row - rCount + 1).Offset(rCount).ClearContents
    End With
    
End Sub


Sub ListFilesCountPerFolder()
    
    ' Source
    Const sCol As String = "A"
    ' Destination
    Const dCol As String = "E"
    ' Both
    Const fRow As Long = 2
    
    ' Reference the worksheet.
    Dim ws As Worksheet: Set ws = ActiveSheet ' improve!
    
    ' Reference the one-column range containing the file paths by using
    ' the End property to calculate the last row.
    Dim slRow As Long: slRow = ws.Cells(ws.Rows.Count, sCol).End(xlUp).Row
    Dim rCount As Long: rCount = slRow - fRow + 1
    If rCount < 1 Then Exit Sub ' column range is empty
    Dim srg As Range: Set srg = ws.Cells(fRow, sCol).Resize(rCount)
    Dim sAddress As String: sAddress = srg.Address
    
    ' Write the folder paths to an array by using the Evaluate method.
    Dim Data As Variant
    Data = ws.Evaluate("LEFT(" & sAddress & ",FIND(""*"",SUBSTITUTE(" _
        & sAddress & ","""",""*"",LEN(" & sAddress & ")-LEN(SUBSTITUTE(" _
        & sAddress & ","""",""""))))-1)")
        
    ' Write the folder paths from the array to the keys of a dictionary
    ' using its items to count the files.
    Dim dict As Object: Set dict = CreateObject("Scripting.Dictionary")
    dict.CompareMode = vbTextCompare
    Dim Key As Variant
    Dim r As Long
    For r = 1 To rCount
        Key = Data(r, 1)
        If Not IsError(Key) Then
            If Len(Key) > 0 Then
                dict(Key) = dict(Key) + 1
            End If
        End If
    Next r
    rCount = dict.Count
    If rCount = 0 Then Exit Sub ' only blanks and error values
    
    ' Resize the array according to the number of key-value pairs
    ' of the dictionary and write the data from the dictionary to the array.
    ReDim Data(1 To rCount, 1 To 2)
    r = 0
    For Each Key In dict.Keys
        r = r + 1: Data(r, 1) = Key: Data(r, 2) = dict(Key)
    Next Key
    
    ' Write the data from the array to the destination two-column range
    ' and clear the contents below.
    With srg.EntireRow.Columns(dCol).Resize(, 2)
        .Resize(rCount).Value = Data
        .Resize(ws.Rows.Count - .Row - rCount + 1).Offset(rCount).ClearContents
    End With
    
End Sub

Далала

0 / 0 / 0

Регистрация: 28.02.2020

Сообщений: 9

1

Excel

Подсчет файлов в папке и вывод значения в ячейку

29.02.2020, 10:09. Показов 4109. Ответов 2

Метки вывод данных, макросы excel (Все метки)


Студворк — интернет-сервис помощи студентам

Здравствуйте! Есть макрос, который в подсчитывает количество файлов, находящихся в заданной папке.
Необходимо полученное значение вывести в конкретную ячейку F4 таблицы «показатели(2).xlsm»

Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub Example_Dir()
    iPath$ = "C:Usersus446777DesktopНПА"
    iFileName$ = Dir(iPath$)
    Do While iFileName$ <> ""
       iCount& = iCount& + 1
       iFileName$ = Dir
    Loop
    MsgBox "Доп. обязанности = " & iCount&
End Sub

Заранее прошу прощения за глупый вопрос, в макросах полный нуль



0



Эксперт NIX

2670 / 786 / 176

Регистрация: 14.01.2013

Сообщений: 3,674

29.02.2020, 13:19

2

Лучший ответ Сообщение было отмечено Далала как решение

Решение

Cells(4, 6).Value = iCount



1



0 / 0 / 0

Регистрация: 28.02.2020

Сообщений: 9

01.03.2020, 12:12

 [ТС]

3

Спасибо большое!
Все получилось



0



Как посчитать файлы в определенной папке / каталоге в Excel?

Если вам нужно получить количество файлов в определенной папке в Excel, какой метод вы подумаете? Как насчет подсчета количества файлов определенного типа в папке? А что, если в Excel считать файлы в определенной папке и ее подпапках? Следующие приемы помогут вам легко решить эту проблему.

  • Подсчитать указанный тип файлов в определенной папке с VBA
  • Подсчитайте все файлы в папке, содержащей текущую книгу
  • Подсчитайте все файлы в определенной папке (включая подпапки) с помощью Kutools for Excel

Подсчитать указанный тип файлов в определенной папке с VBA

Следующий VBA может помочь вам легко подсчитать определенный тип файлов в определенной папке, например подсчитать все файлы .xlsx в папке. Пожалуйста, сделайте следующее:

1. нажмите другой + F11 одновременно клавиши, чтобы открыть окно Microsoft Visual Basic для приложений.

2. Нажмите Вставить > Модули, а затем вставьте приведенный ниже код VBA в открывающееся окно модуля.

VBA: подсчитать определенный файл в определенной папке

Sub CountFiles()
Dim xFolder As String
Dim xPath As String
Dim xCount As Long
Dim xFiDialog As FileDialog
Dim xFile As String
Set xFiDialog = Application.FileDialog(msoFileDialogFolderPicker)
If xFiDialog.Show = -1 Then
xFolder = xFiDialog.SelectedItems(1)
End If
If xFolder = "" Then Exit Sub
xPath = xFolder & "*.xlsx"
xFile = Dir(xPath)
Do While xFile <> ""
xCount = xCount + 1
xFile = Dir()
Loop
MsgBox xCount & " files found"
End Sub

Внимание: Приведенный выше код VBA будет считать . XLSX файлы в определенной папке. Для подсчета других типов файлов, пожалуйста, узнайте xPath = xFolder & » *. xlsx», и измените . XLSX в другое расширение файла в зависимости от ваших потребностей.

3. нажмите F5 ключ или щелкните Run кнопку, чтобы запустить этот код VBA.

4. В открывшемся диалоговом окне Обзор выберите определенную папку, в которой вы будете считать файлы определенного типа, и щелкните значок OK кнопку.


5. Теперь появится диалоговое окно, в котором будет показано, сколько файлов определенного типа существует в определенной папке. Просто закройте диалоговое окно.

Легко объединяйте несколько листов / книг / файлов CSV в один рабочий лист / книгу

Объединение десятков листов из разных книг в один лист может оказаться утомительным. Но с Kutools for ExcelАвтора Объединить (рабочие листы и рабочие тетради) утилиту, вы можете сделать это всего за несколько кликов!

объявление объединить листы книги 1

Подсчитайте все файлы в папке, содержащей текущую книгу

Если вы открыли папку, обычно вы получите количество всех файлов в нижней части этой папки. Этот метод познакомит Kutools for ExcelАвтора Откройте папку содержащие утилита, чтобы открыть папку, содержащую текущую книгу, а затем получить количество файлов в этой папке.

1. Нажмите Кутулс Плюс > Workbook > Откройте папку содержащие. Смотрите скриншот:

количество файлов в папке 02

2. Теперь открывается папка, содержащая текущую книгу.

Отмените выбор любого файла в открывающейся папке, и вы увидите количество всех файлов внизу этой папки, как показано ниже:

Внимание: Откройте папку содержащие утилита будет недействительной, если вы никогда раньше не сохраняли текущую книгу.

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now


Подсчитайте все файлы в определенной папке (включая подпапки) с помощью Kutools for Excel

Иногда вам может понадобиться подсчитать несколько типов файлов в папке и ее подпапках. На самом деле Kutools for Excel предоставляет другой Список имен файлов утилита, чтобы решить эту проблему с легкостью.

1. Нажмите Кутулс Плюс > Импорт / Экспорт > Список имен файлов , чтобы открыть диалоговое окно Список имен файлов.

количество файлов в папке 01

2. В открывшемся диалоговом окне «Список имен файлов» сделайте следующее:

(1) Щелкните значок Приложения кнопка выбрать определенную папку, в которой вы будете считать определенные типы файлов.

(2) Укажите типы файлов, которые вы будете считать в зависимости от ваших потребностей.

Например, вам нужно подсчитать все виды книг, например . XLSX файлы, XLSM файлов, а также . Xls файлы и т. д., проверьте Общий и выберите Все файлы Excel из раскрывающегося списка ниже.

Примечание: Если вам нужно подсчитать все / определенные типы файлов в определенной папке и ее подпапках, проверьте Включить файлы в подкаталоги опцию.

3. Нажмите Ok в диалоговом окне Список имен файлов.

4. Теперь все файлы определенных типов перечислены на новом листе. Просто выберите первый столбец без заголовка столбца, и вы получите количество файлов в строке состояния, как показано ниже:

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now


Демо: подсчитайте все файлы в определенной папке (включая подпапки)


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (0)


Оценок пока нет. Оцените первым!

подсчет количества файлов в папки

Zhuravlev_IV

Дата: Четверг, 27.03.2014, 15:40 |
Сообщение № 1

Группа: Пользователи

Ранг: Участник

Сообщений: 53


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Суть вопроса. Нужно с помощью функции в эксель подсчитать количество файлов в папки, если путь к папке известен. Либо если есть возможность, выводить названия файлов находящихся в папки по известному пути. Результат должен отображаться в одной ячейке.

 

Ответить

ShAM

Дата: Четверг, 27.03.2014, 16:04 |
Сообщение № 2

Группа: Друзья

Ранг: Старожил

Сообщений: 1347


Репутация:

249

±

Замечаний:
0% ±


Excel 2010

Формулы такое не умеют.

 

Ответить

Zhuravlev_IV

Дата: Четверг, 27.03.2014, 16:21 |
Сообщение № 3

Группа: Пользователи

Ранг: Участник

Сообщений: 53


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

хмм… примерно такого ответа я и ожидал) просто думал может кто знает как создать такую UDF-функцию, чтоб и формулы такое умели)


Журавлев Иван

 

Ответить

ShAM

Дата: Четверг, 27.03.2014, 16:43 |
Сообщение № 4

Группа: Друзья

Ранг: Старожил

Сообщений: 1347


Репутация:

249

±

Замечаний:
0% ±


Excel 2010

УДФ и макросы в другом разделе форума. Попросите модераторов перенести Вашу тему туда.
[moder]Угу

 

Ответить

Pelena

Дата: Четверг, 27.03.2014, 16:53 |
Сообщение № 5

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

Zhuravlev_IV

Дата: Четверг, 27.03.2014, 17:31 |
Сообщение № 6

Группа: Пользователи

Ранг: Участник

Сообщений: 53


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Да? Спасибо, посмотрим, только я в макросах самих ничего не понимаю, как их и к чему привязывать. А UDF-функциию можно сделать, которая будет ссылаться на ячейку в которой будет адрес где нужно считать количество файлов, и выдавать готовый результат. И еще пару аргументов функции задать, ограничение по расширению и считать скрытые файлы или нет. И все аргументы в каких нибудь ячейках.


Журавлев Иван

 

Ответить

Pelena

Дата: Четверг, 27.03.2014, 17:34 |
Сообщение № 7

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Походите по ссылкам из этой темы. Там и UDF есть


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

_Boroda_

Дата: Четверг, 27.03.2014, 21:10 |
Сообщение № 8

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Для подсчета количества
[vba]

Код

Function ColFile(Gde_ As Range)
     Dim f, i
     If Gde_ <> «» Then
         Gde1_ = Gde_.Value
         If Right(Gde1_, 1) <> «» Then Gde1_ = Gde1_ & «»
         f_ = Dir(Gde1_)
             Do While f_ <> «»
                 i = i + 1
                 f_ = Dir()
             Loop
         ColFile = i
     End If
End Function

[/vba]

К сообщению приложен файл:

___.xlsm
(13.5 Kb)


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Hugo

Дата: Четверг, 27.03.2014, 23:02 |
Сообщение № 9

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ

Я бы писал для Gde_ as Variant или String — тогда можно путь указывать прямо в аргументе, а не только на листе. А можно и на листе.


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

_Boroda_

Дата: Четверг, 27.03.2014, 23:17 |
Сообщение № 10

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Ну да, согласен. Там еще много чего можно, например

И еще пару аргументов функции задать, ограничение по расширению и считать скрытые файлы или нет

Это я так, быстренько набросал.
Ха, сейчас по ссылке, что Лена давала выше прошелся. Там же все-все есть уже.


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Zhuravlev_IV

Дата: Пятница, 28.03.2014, 09:55 |
Сообщение № 11

Группа: Пользователи

Ранг: Участник

Сообщений: 53


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Большое спасибо о великие гуру VBA!!!!))) yes yes yes ^_^ pray pray pray


Журавлев Иван

 

Ответить

Понравилась статья? Поделить с друзьями:
  • Vba excel максимальный столбец
  • Vba excel количество строк диапазона
  • Vba excel максимальное значение массива
  • Vba excel количество строк в фильтре
  • Vba excel максимальное значение в строке