如何在Excel 2013/2016/2019中获取工作簿中每个工作表的数据大小
- 2022-03-28
- 来源/作者: 菜鸟图库/ 菜鸟图库
- 1157 次浏览
本文将讲述如何在Excel中获取到当前打开工作簿的每个工作表的数据大小。如何在Excel 2013/2016中获取工作簿中每个工作表的数据大小。
假设您有一个包含多个工作表的工作簿,并且您想知道当前工作簿中每个工作表的数据大小。本文将向你演示两种获取工作数据数据大小的方法。
- 方法1:手动获取每个工作表的数据大小
- 方法2:通过VBA宏获取每个工作表的数据大小
方法1:手动获取每个工作表的数据大小
您可以手动逐个获取每个工作表的数据大小,只需要在工作簿中复制Excel工作表的内容,然后创建一个新工作簿,并将内容粘贴到新工作簿中的sheet1中,然后将新工作簿保存到Windows文件夹。然后你可以得到这个新工作簿的大小。
您可以重复上述步骤,在工作簿中逐个获取其他工作表的数据大小。
方法2:通过VBA宏获取每个工作表的数据大小
如果要快速获取当前工作簿中每个工作表的数据大小,可以使用Excel VBA宏来完成它。只需执行以下步骤:
步骤1:打开您的Excel工作簿,然后单击开发工具选项卡下的“Visual Basic”命令,或者只需按“ALT + F11”快捷方式。
步骤2:然后将出现“Visual Basic编辑器”窗口。
步骤3:单击“插入” – >“模块”以创建新模块。
步骤4:将以下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:返回当前工作表,然后运行上面的excel宏。点击执行按钮。
步骤6:让我们看看最后的结果:
标签(TAG) VBA教程