여러 파일에서 워크 시트를 계산
_ 매일 많은 Excel 파일이 발생하고 각 통합 문서에있는 워크 시트 수를 찾는 데 도움이되는 빠른 메커니즘이 필요한 상황을 고려하십시오. 비슷한 문제가 있다면이 기사를 놓치지 마세요. 많은 도움이 될 것입니다 ._
이 기사에서는 VBA 코드를 사용하여 여러 파일의 워크 시트를 계산하는 방법을 알아 봅니다.
질문 : * 파일 이름 목록을 읽고 각 파일에있는 워크 시트 수를 반환 할 수있는 매크로가 필요합니다 (이는 일련의 워크 시트에 올바른 수의 워크 시트가 있는지 확인하는 감사 메커니즘입니다. 다른 프로세스를 통해 생성 된 파일). 매크로는 파일이있는 폴더의 경로 (모두 같은 폴더에 있음)를 설정 한 다음 첫 번째 파일을 찾고 워크 시트 수를 식별하고 다음 파일에 대해 반복해야합니다.
나는 단순히 파일 이름을 참조하여 공식으로 이것을 할 수 있다고 생각했지만 Excel에는 워크 시트 수에 대한 간단한 공식이 없다고 생각합니다. 감사!
원래 질문을 읽으려면 http://www.excelforum.com/excel-programming-vba-macros/1091683-count-worksheets-in-multiple-files.html [여기]
다음은 확장자가 .xlsx 인 폴더에 저장된 파일의 스냅 샷입니다
참고 : 암호로 보호 된 파일은 없습니다.
코드를 얻으려면 아래 단계에 따라 VB 편집기를 시작해야합니다.
개발자 탭을 클릭하십시오. 코드 그룹에서 Visual Basic을 선택하십시오
-
표준 모듈에 아래 코드 복사
Sub ListSheetCounts() Dim Cell As Range Dim Conn As Object Dim Cat As Object Dim ConnStr As String Dim n As Long Dim Rng As Range Dim RngEnd As Range Dim WkbPath As Variant Dim Wks As Worksheet ' Folder path where the workbooks are located. WkbPath = "C:\Users\Test" ' Name of worksheet with the workbook list. Set Wks = Worksheets("Sheet1") ' Starting cell of workbook list. Set Rng = Wks.Range("A2") ' Get the range of cells in the workbook name list. Set RngEnd = Wks.Cells(Rows.Count, Rng.Column).End(xlUp) If RngEnd.Row >= Rng.Row Then Set Rng = Wks.Range(Rng, RngEnd) ' Create the needed ADO objects fro this macro. Set Conn = CreateObject("ADODB.Connection") Set Cat = CreateObject("ADOX.Catalog") ' Add a final backslash the path if needed. WkbPath = IIf(Right(WkbPath, 1) <> "\", WkbPath & "\", WkbPath) ' Step through each cell in the workbook list. For Each Cell In Rng ' Get the worksheet count for the workbook. ConnStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _ & WkbPath & Cell _ & ";Extended Properties=""Excel 12.0 Xml;HDR=YES;IMEX=1;""" Conn.Open ConnStr Set Cat.ActiveConnection = Conn ' Copy the count to the cell one column to right of the workbook name in the list. Cell.Offset(n, 1) = Cat.Tables.Count Conn.Close Next Cell ' Clean up. Set Cat = Nothing Set Conn = Nothing End Sub
이미지 : https : //www.office-skill.site/images/wp-content-uploads-2015-07-img37.png [img3, width = 796, height = 490]
===
-
매크로를 실행하면 워크 시트의 수가 표시됩니다. 아래 스냅 샷을 참조하십시오 :
참고 : 위의 매크로는 .xlsx 및 .xls 확장자에 대해서는 작동하며 .xlsm 매크로 사용 확장자에는 작동하지 않습니다.
위의 파일은 모두 .xlsx 확장자입니다. 더미 엑셀 시트, 즉 Sheet 10을 추가하겠습니다. 확장자가 .xlsx 및 .xls 인 동일한 이름의 파일이있는 경우 다음과 같이 해당 확장자로 파일 이름을 언급해야합니다. 테스트 파일 (A 열)에서 매크로가 우리가 참조하는 파일을 식별하고 올바른 결과를 제공 할 수 있도록 동일한 이름을 가진 파일의 확장자를 언급하지 않았거나 언급하지 않은 경우 매크로가 제공합니다. .xlsx 확장자의 개수입니다. 아래 스냅 샷을 참조하십시오 :
-
확장자가 .xlsx 및 .xls 인 Sheet 10의 시트 수를 얻으려면 해당 확장자와 함께 파일 이름을 언급해야합니다. 최종 출력의 스냅 샷은 다음과 같습니다.
결론 : 위의 매크로 코드를 사용하여 여러 파일의 워크 시트 수를 계산할 수 있으며 사용자 지정 결과를 얻으려면 VBA 코드에서 약간의 수정을 수행 할 수 있습니다.
_ 블로그가 마음에 들면 페이스 북에서 친구들과 공유하세요. Twitter와 Facebook에서도 팔로우 할 수 있습니다 ._
_ 우리는 여러분의 의견을 듣고 싶습니다. 우리가 작업을 개선, 보완 또는 혁신하고 더 나은 서비스를 제공 할 수있는 방법을 알려주십시오. [email protected]_로 문의 해주세요