_ 매일 많은 Excel 파일이 발생하고 각 통합 문서에있는 워크 시트 수를 찾는 데 도움이되는 빠른 메커니즘이 필요한 상황을 고려하십시오. 비슷한 문제가 있다면이 기사를 놓치지 마세요. 많은 도움이 될 것입니다 ._

이 기사에서는 VBA 코드를 사용하여 여러 파일의 워크 시트를 계산하는 방법을 알아 봅니다.

질문 : * 파일 이름 목록을 읽고 각 파일에있는 워크 시트 수를 반환 할 수있는 매크로가 필요합니다 (이는 일련의 워크 시트에 올바른 수의 워크 시트가 있는지 확인하는 감사 메커니즘입니다. 다른 프로세스를 통해 생성 된 파일). 매크로는 파일이있는 폴더의 경로 (모두 같은 폴더에 있음)를 설정 한 다음 첫 번째 파일을 찾고 워크 시트 수를 식별하고 다음 파일에 대해 반복해야합니다.

나는 단순히 파일 이름을 참조하여 공식으로 이것을 할 수 있다고 생각했지만 Excel에는 워크 시트 수에 대한 간단한 공식이 없다고 생각합니다. 감사!

다음은 확장자가 .xlsx 인 폴더에 저장된 파일의 스냅 샷입니다

img1

참고 : 암호로 보호 된 파일은 없습니다.

코드를 얻으려면 아래 단계에 따라 VB 편집기를 시작해야합니다.

개발자 탭을 클릭하십시오. 코드 그룹에서 Visual Basic을 선택하십시오

img2

  • 표준 모듈에 아래 코드 복사

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]

===

img4

  • 매크로를 실행하면 워크 시트의 수가 표시됩니다. 아래 스냅 샷을 참조하십시오 :

img5

참고 : 위의 매크로는 .xlsx 및 .xls 확장자에 대해서는 작동하며 .xlsm 매크로 사용 확장자에는 작동하지 않습니다.

위의 파일은 모두 .xlsx 확장자입니다. 더미 엑셀 시트, 즉 Sheet 10을 추가하겠습니다. 확장자가 .xlsx 및 .xls 인 동일한 이름의 파일이있는 경우 다음과 같이 해당 확장자로 파일 이름을 언급해야합니다. 테스트 파일 (A 열)에서 매크로가 우리가 참조하는 파일을 식별하고 올바른 결과를 제공 할 수 있도록 동일한 이름을 가진 파일의 확장자를 언급하지 않았거나 언급하지 않은 경우 매크로가 제공합니다. .xlsx 확장자의 개수입니다. 아래 스냅 샷을 참조하십시오 :

img6

  • 확장자가 .xlsx 및 .xls 인 Sheet 10의 시트 수를 얻으려면 해당 확장자와 함께 파일 이름을 언급해야합니다. 최종 출력의 스냅 샷은 다음과 같습니다.

img7

결론 : 위의 매크로 코드를 사용하여 여러 파일의 워크 시트 수를 계산할 수 있으며 사용자 지정 결과를 얻으려면 VBA 코드에서 약간의 수정을 수행 할 수 있습니다.

rar icon

_ 블로그가 마음에 들면 페이스 북에서 친구들과 공유하세요. Twitter와 Facebook에서도 팔로우 할 수 있습니다 ._

_ 우리는 여러분의 의견을 듣고 싶습니다. 우리가 작업을 개선, 보완 또는 혁신하고 더 나은 서비스를 제공 할 수있는 방법을 알려주십시오. [email protected]_로 문의 해주세요