Maarten은 통합 문서에있는 각 워크 시트의 크기를 알아내는 방법이 있는지 궁금합니다. 그는 거의 100 개의 워크 시트가있는 통합 문서를 가지고 있으며 통합 문서 파일의 크기를 줄이려고합니다. 그러나 그는 어떤 워크 시트가 크기가 가장 큰지 알지 못합니다.

개별 워크 시트의 “크기”를 파악하는 것은 대부분 “크기”가 의미하는 바에 따라 다릅니다. 사용 된 세포의 수를 의미합니까? 사용 된 열과 행? 워크 시트에 얼마나 많은 텍스트가 저장됩니까? 메트릭 목록은 계속 될 수 있습니다.

문제는 이와 같은 질문이 표를 놓친다는 것입니다. 워크 시트에는 많은 항목이 저장 될 수 있습니다. 예를 들어, 주석, 공식, 텍스트, 차트, 사운드 파일 및 기타 항목을 포함 할 수 있습니다. 한 차트는 셀 수 측면에서 다른 차트보다 클 수 있지만 다른 차트 또는 피벗 테이블과 같은 개체 측면에서 더 클 수 있습니다.

워크 시트의 상대적 크기를 비교하는 유일한 방법은 각 워크 시트를 자체 통합 문서에 저장 한 다음 각 결과 통합 문서의 크기를 검사하는 것입니다. 통합 문서를 저장하면 저장된 파일에 추가 오버 헤드가 발생하기 때문에 각 개별 워크 시트의 크기에 대한 정확한 대답은 아닙니다. 그러나 각 워크 시트를 같은 방식으로 저장하면 각 워크 시트에 비슷한 오버 헤드가 있으므로 서로 비교하여 더 큰 워크 시트를 확인할 수 있습니다.

다음 매크로는 생성 된 각 통합 문서의 크기를 기록하기 위해 현재 통합 문서에 워크 시트를 추가합니다. 그런 다음 각 워크 시트를 단계별로 진행하여 개별 통합 문서에 저장합니다. 그런 다음 통합 문서의 크기가 결정되고 기록되고 새 통합 문서가 삭제됩니다.

Sub WorksheetSizes()

Dim wks As Worksheet     Dim c As Range     Dim sFullFile As String     Dim sReport As String     Dim sWBName As String

sReport = "Size Report"

sWBName = "Erase Me.xls"

sFullFile = ThisWorkbook.Path & _       Application.PathSeparator & sWBName

' Add new worksheet to record sizes     On Error Resume Next     Set wks = Worksheets(sReport)

If wks Is Nothing Then         With ThisWorkbook.Worksheets.Add(Before:=Worksheets(1))

.Name = sReport             .Range("A1").Value = "Worksheet Name"

.Range("B1").Value = "Approximate Size"

End With     End If     On Error GoTo 0     With ThisWorkbook.Worksheets(sReport)

.Select         .Range("A1").CurrentRegion.Offset(1, 0).ClearContents         Set c = .Range("A2")

End With

Application.ScreenUpdating = False     ' Loop through worksheets     For Each wks In ActiveWorkbook.Worksheets         If wks.Name <> sReport Then             wks.Copy             Application.DisplayAlerts = False             ActiveWorkbook.SaveAs sFullFile             ActiveWorkbook.Close SaveChanges:=False             Application.DisplayAlerts = True             c.Offset(0, 0).Value = wks.Name             c.Offset(0, 1).Value = FileLen(sFullFile)

Set c = c.Offset(1, 0)

Kill sFullFile         End If     Next wks     Application.ScreenUpdating = True End Sub

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (11113)은 Microsoft Excel 2007 및 2010에 적용됩니다. 여기에서 Excel의 이전 메뉴 인터페이스에 대한이 팁의 버전을 찾을 수 있습니다.

link : / excel-Finding_the_Size_of_Individual_Worksheets [개별 워크 시트의 크기 찾기].