当前位置: 主页 > Office办公 > Excel专区 > Excel函数 > 如何在Excel 2013/2016/2019中获取工作簿中每个工作表的数据大小

如何在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”快捷方式。

如何在Excel 2013/2016/2019中获取工作簿中每个工作表的数据大小

步骤2:然后将出现“Visual Basic编辑器”窗口。

如何在Excel 2013/2016/2019中获取工作簿中每个工作表的数据大小

步骤3:单击“插入” – >“模块”以创建新模块。

如何在Excel 2013/2016/2019中获取工作簿中每个工作表的数据大小

步骤4:将以下VBA代码粘贴到代码窗口中。然后单击“保存”按钮。

如何在Excel 2013/2016/2019中获取工作簿中每个工作表的数据大小

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宏。点击执行按钮。

如何在Excel 2013/2016/2019中获取工作簿中每个工作表的数据大小

步骤6:让我们看看最后的结果:

如何在Excel 2013/2016/2019中获取工作簿中每个工作表的数据大小

标签(TAG) VBA教程