如何检查工作簿中每个工作表的大小?
众所周知,当您右键单击Excel文件时,可以查看其属性和大小。但是,如果您想知道文件中各个工作表的大小呢?
会计师和数据分析师维护具有多个工作表的大型Excel工作簿。了解文件大小可以帮助确定最佳分析方法。有些人可能想从开销大的工作表开始,也有些人可能从轻的那个开始。通常情况下,一个表占据了工作簿的大部分空间。
本教程解释了如何识别工作簿中每个工作表的大小。
Excel工作簿中确定工作表大小的VBA代码
您必须共享一个Excel文件,但是文件太大而无法发送。它包含7个工作表,您想知道哪个工作表可以缩小,以便可以高效地完成任务。使用Excel中的Visual Basic应用程序(VBA)代码,您可以快速确定一个独立表中所有工作表的大小,而不管工作簿中有多少个工作表。
第1步: 打开要确定其内部工作表大小的工作簿文件。
第2步: 转到“开发人员”选项卡,单击“Visual Basic”选项以打开对话框。或者,您也可以通过按下Alt + F11键打开对话框。
第3步: 一旦对话框出现,右键单击“Microsoft Excel对象”以获得更多选项并选择“插入”→“模块”。
第4步: 在模块编辑器部分(屏幕右上角的白色框)中键入或粘贴VBA代码。
Microsoft Excel VBA代码来检查工作簿中工作表的大小−
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
第5步: 单击面板中的“运行程序”按钮(第二个按钮)或按F5键执行代码。
第6步: 返回您的Excel工作簿,查看关于工作表的信息。
根据VBA代码的指示,创建了一个名为“大小报告”的新工作表。它包含有关当前工作簿中所有工作表大小信息的表格。根据表格,Sheet1是最小的工作表。
结论
Excel是一款生产力软件,您可以在一个或多个工作表中输入大量数据。它可以包括注释、客户列表、作业、研究数据、公式、文本、图表、声音文件和其他类型的数据。一个工作表可能在单元格数量上比另一个工作表更大,但某些工作表在对象数量上更大。我们使用VBA代码在一个工作表中汇总所有大小信息。