이 VBA 기능이 작동해야합니다
Public Function CountFiles(datestr As String, pathstr As String) As Long
' datestr has format yyyymmdd (no trailing underscore)
' pathstr has format C:\folder1\folder2\...\folderN (no trailing backslash)
Dim count As Long
count = 0
If Dir(pathstr + "\" + datestr + "_??????.xlsx", vbNormal) Like "########_######.xlsx" Then
count = count + 1
While Dir() Like "########_######.xlsx"
count = count + 1
Wend
End If
CountFiles = count
End Function
예 호출은 다음과 같습니다
=CountFiles("20160101", "C:\temp")
에는 날짜 (ALL 파일을 계산하지 않으려면 필터링), datestr에 ????????
을 사용하십시오.
이 함수는 올바른 형식의 날짜/시간 스탬프에 대한 테스트를 수행합니다. "20160101_report.xlsx"라는 파일은 계산되지 않습니다.
항상 같은 디렉토리를 계산하면 pathstr을 하드 코딩 할 수 있습니다.
희망이 도움이됩니다.
루프가 없으면 어떻게 될지 모르겠습니다. 나는 그것이 가능하다고 생각한다. 지금까지 뭐 했니? – Brian
이 게시물 읽기 : http://stackoverflow.com/questions/10380312/loop-through-files-in-a-folder-using-vba. 나는 이것이 당신이 원하는 것이라고 생각합니다. – Brian
@ Brian countif 형식의 공식을 기대했지만 링크에서 제시하는대로 Dir을 사용하여 루프를 시도합니다. 하루에 20 개의 파일이있는이 폴더에는 수년 간의 데이터가 있기 때문에 지금은 너무 느립니다. – Meghan