Note: The other languages of the website are Google-translated. Back to English

如何检查工作簿的每个工作表的大小?

假设您有一个包含多个工作表的大型工作簿,现在,您想找出每个工作表的大小,以确定需要减少的工作表。 有没有快速的方法来处理此任务?

使用VBA代码检查每个工作表的大小

使用Kutools for Excel检查每个工作表的大小

Office选项卡在Office中启用选项卡式编辑和浏览,并使您的工作更加轻松...
Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%
  • 重用任何东西: 将最常用或最复杂的公式,图表等添加到您的收藏夹中,并在将来快速重用它们。
  • 超过20种文字功能: 从文本字符串中提取数字; 提取或删除部分文字; 将数字和货币转换为英文单词。
  • 合并工具:将多个工作簿和工作表合二为一; 合并多个单元格/行/列,而不会丢失数据; 合并重复的行和总和。
  • 分割工具:根据价值将数据分割成多个工作表; 一本工作簿可转换为多个Excel,PDF或CSV文件; 一列到多列。
  • 跳过粘贴 隐藏/过滤的行; 计数与求和 按背景色; 向多个收件人批量发送个性化电子邮件。
  • 超级过滤器: 创建高级过滤方案并应用于任何工作表; 排序 按星期,日期,频率等 筛选器 用粗体,公式,注释...
  • 超过300种强大的功能; 适用于 Office 2007-2021 和 365; 支持所有语言; 在您的企业或组织中轻松部署。

箭头蓝色右气泡 使用VBA代码检查每个工作表的大小

使用以下VBA代码,您可以快速获取工作簿中每个工作表的大小。 请这样做:

1。 按住 ALT + F11 键,然后打开 Microsoft Visual Basic for Applications窗口.

2。 点击 插页 > 模块,然后将以下代码粘贴到 模块窗口.

VBA代码:检查工作簿中每个工作表的大小

Sub WorksheetSizes()
'Update 20140526
Dim xWs As Worksheet
Dim Rng As Range
Dim xOutWs As Worksheet
Dim xOutFile As String
Dim xOutName As String
xOutName = "KutoolsforExcel"
xOutFile = ThisWorkbook.Path & "\TempWb.xls"
On Error Resume Next
Application.DisplayAlerts = False
Err = 0
Set xOutWs = Application.Worksheets(xOutName)
If Err = 0 Then
    xOutWs.Delete
    Err = 0
End If
With Application.ActiveWorkbook.Worksheets.Add(Before:=Application.Worksheets(1))
    .Name = xOutName
    .Range("A1").Resize(1, 2).Value = Array("Worksheet Name", "Size")
End With
Set xOutWs = Application.Worksheets(xOutName)
Application.ScreenUpdating = False
xIndex = 1
For Each xWs In Application.ActiveWorkbook.Worksheets
    If xWs.Name <> xOutName Then
        xWs.Copy
        Application.ActiveWorkbook.SaveAs xOutFile
        Application.ActiveWorkbook.Close SaveChanges:=False
        Set Rng = xOutWs.Range("A1").Offset(xIndex, 0)
        Rng.Resize(1, 2).Value = Array(xWs.Name, VBA.FileLen(xOutFile))
        Kill xOutFile
        xIndex = xIndex + 1
    End If
Next
Application.ScreenUpdating = True
Application.Application.DisplayAlerts = True
End Sub

3. 然后按 F5 执行此代码的键,以及名为 KutoolsForexcel. 将插入到包含每个工作表名称和文件大小的当前工作簿中,单位为“位”。 看截图:

文档检查表大小 1


箭头蓝色右气泡 使用Kutools for Excel检查每个工作表的大小

如果你有 Kutools for Excel,其 拆分工作簿 实用程序,您可以将整个工作簿拆分为单独的文件,然后转到特定的文件夹以检查每个文件的大小。

Kutools for Excel 包括300多个便捷的Excel工具。 30天免费试用,不受限制。 立即获取.

安装Kutools for Excel之后,请执行以下步骤:

1。 打开您要检查其每个工作表的大小的工作簿,然后单击 企业 > 工作簿工具 > 拆分工作簿,请参见屏幕截图:

文档检查表大小 1

2。 在 拆分工作簿 对话框,检查所有工作表,然后单击 分裂 按钮,然后指定一个文件夹来放置新的工作簿文件。 查看屏幕截图:

文档检查表大小 3
-1
文档检查表大小 4

3。 然后,当前工作簿的每个工作表将另存为单独的Excel文件,您可以转到您的特定文件夹以检查每个工作簿的大小。

文档检查表大小 1

要了解有关此拆分工作簿功能的更多信息。


相关文章:

如何在Excel中拆分工作簿以分隔Excel文件?

如何在Excel中将工作表和工作表导出并保存为新工作簿?


最佳办公效率工具

Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%

  • 重用: 快速插入 复杂的公式,图表 以及您以前使用过的任何东西; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不会丢失数据; 拆分单元格内容; 合并重复的行/列...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 超过300种强大功能. 支持 Office / Excel 2007-2021 和 365。支持所有语言。 在您的企业或组织中轻松部署。 完整功能 30 天免费试用。 60 天退款保证。
kte选项卡201905

Office选项卡为Office带来了选项卡式界面,使您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
按评论排序
注释 (9)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
很有帮助。 谢谢!!
该评论由网站上的主持人最小化
感谢您向公众提供代码片段。 这是我发现的更好的例程之一。 以下是一些调整: 1) 如果您使用 Option Explicit,请将“Dim xIndex as Long”添加到顶部。 2) 在 For 循环中添加这个来处理隐藏的工作表(否则它会崩溃): xWs.Visible = xlSheetVisible 3) 如果你有整页的“图表”工作表,你需要复制循环的代码并遍历应用程序。 ActiveWorkbook.Charts 集合。 如果这样做,请将 xWs 的声明从“Sheet”更改为“Object”。 4) 对于廉价的状态指示器(或调试问题),在 For 循环中添加这一行:Debug.Print "Calculating Worksheet Sizes, Sheet " & xIndex & " of " & ActiveWorkbook.Worksheets.count - 1 & " - " & xWs.Name
该评论由网站上的主持人最小化
嘿,本,你能用你添加的电子邮件中的项目#2 和#4 重新粘贴整个文本字符串吗? 我的 VBA 知识非常有限,我不确定将它们添加到 For 循环的确切位置。 我的工作簿有许多隐藏的工作表,并且在宏执行期间不断崩溃。 谢谢,鲍勃
该评论由网站上的主持人最小化
这是我添加了一些增强功能的例程副本。 由于网站限制,我不得不将其分成多个帖子。 公共子 WorksheetSizes() '更新 20140526 ' https://www.extendoffice.com/documents/excel/1682-excel-check-size-of-each-sheet.html<br />' ' BS 4/4/2016:修改为具有状态栏并格式化输出。 ' 修复了导致它崩溃的隐藏工作表。 ' 添加了对图表工作表的支持 Dim xWs As Object ' Worksheet 或 Chart Dim rng As Range Dim xOutWs As Worksheet Dim xOutFile As String Dim xOutName As String Dim xIndex As Long On Error GoTo ErrorHandler Application.Cursor = xlWait xOutName = "KutoolsforExcel" xOutFile = ThisWorkbook.Path & "\TempWb.xls" On Error Resume Next Application.DisplayAlerts = False Err = 0 Set xOutWs = Application.Worksheets(xOutName) If Err = 0 Then xOutWs.Delete Err = 0 End If With Application.ActiveWorkbook.Worksheets .Add(Before:=Application.Worksheets(1)) .Name = xOutName .Range("A1").Resize(1, 2).Value = Array("Worksheet Name", "Size") End With Set xOutWs = Application.Worksheets(xOutName) Application.ScreenUpdating = False xIndex = 1 Debug.Print ThisWorkbook.Path For Each xWs In Application.ActiveWorkbook.Worksheets If xWs.Name xOutName Then Application.StatusBar = "Calculating Worksheet Sizes, Sheet " & xIndex & " " & ActiveWorkbook.Worksheets.count - 1 & " - " & xWs.Name Debug.Print "计算 W orksheet Sizes, Sheet " & xIndex & " of " & ActiveWorkbook.Worksheets.count - 1 & " - " & xWs.Name DoEvents ' 包括这个,因此可以检测到 CTRL+Break。 '--- 粘贴中断 ---
该评论由网站上的主持人最小化
' 第 2 部分,共 3 部分 '--- 粘贴中断 --- xWs.Visible = xlSheetVisible ' xOutFile = ThisWorkbook.Path & "\" & xWs.Name & ".xls" xWs.CopyQ Application.ActiveWorkbook.SaveAs xOutFile Application.ActiveWorkbook .Close SaveChanges:=False Set rng = xOutWs.Range("A1").Offset(xIndex, 0) rng.Resize(1, 2).Value = Array(xWs.Name, VBA.FileLen(xOutFile)) 杀死xOutFile xIndex = xIndex + 1 End If Next ' 对图表表重复上述操作。 对于 Application.ActiveWorkbook.Charts 中的每个 xWs If xWs.Name xOutName Then Application.StatusBar = "Calculating Worksheet Sizes, Sheet " & xIndex & " of " & ActiveWorkbook.Worksheets.count - 1 & " - " & xWs.Name 调试。 Print "Calculating Worksheet Sizes, Sheet" & xIndex & " of " & ActiveWorkbook.Worksheets.count - 1 & " - " & xWs.Name DoEvents ' 包括这个,以便可以检测到 CTRL+Break。 xWs.Visible = xlSheetVisible xOutFile = ThisWorkbook.Path & "\" & xWs.Name & ".xls" xWs.Copy Application.ActiveWorkbook.SaveAs xOutFile Application.ActiveWorkbook.Close SaveChanges:=False Set rng = xOutWs.Range("A1 ").Offset(xIndex, 0) rng.Resize(1, 2).Value = Array(xWs.Name, VBA.FileLen(xOutFile)) 'Kill xOutFile xIndex = xIndex + 1 End If Next '--- 粘贴中断---
该评论由网站上的主持人最小化
' Part 3 of 3 '--- paste break --- ' 格式化输出表 Application.Sheets(xOutName).Activate Columns("B:B").Select Selection.NumberFormat = "#,##0_);( #,##0)" Columns("A:B").Select Columns("A:B").EntireColumn.AutoFit Range("A1").Select ' 更好的是,将其格式化为表格。 ActiveSheet.ListObjects.Add(xlSrcRange, Range("A1:B" & xIndex), , xlYes).Name = "WorksheetSizes" Application.ScreenUpdating = True Application.Application.DisplayAlerts = True Application.StatusBar = "" Application.Cursor = xlDefault Exit Sub ErrorHandler: MsgBox "Error #" & Err.Number & " - " & Err.Description & vbCrLf & "in procedure WorksheetSizes" End Sub
该评论由网站上的主持人最小化
非常非常非常非常有帮助。
谢谢!!
该评论由网站上的主持人最小化
谢谢,很有帮助,
我在工作表中有一堆不必要的公式,我刚刚删除了该文件现在可以正常工作。
所有这些只是因为我能找到每张纸的尺寸,
再次感谢。

陈方安
该评论由网站上的主持人最小化
可能应该在第 9 行和第 10 行之间添加它,以防某些工作表被隐藏以避免代码崩溃
对于工作表中的每个 xWs:xWs.Visible = True:下一步
这里还没有评论

关注我们

版权所有 © 2009 - extendoffice.com。 | 版权所有。 供电 ExtendOffice。 | 网站地图
Microsoft和Office徽标是Microsoft Corporation在美国和/或其他国家的商标或注册商标。
受Sectigo SSL保护