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 執行此代碼的鍵,以及名為 Kutoolsfor Excel 將插入到包含每個工作表名稱和文件大小的當前工作簿中,單位為“位”。 看截圖:

文檔檢查表大小 1


箭頭藍色右氣泡 使用Kutools for Excel檢查每個工作表的大小

如果你有 Excel的Kutools,其 拆分工作簿 實用程序,您可以將整個工作簿拆分為單獨的文件,然後轉到特定的文件夾以檢查每個文件的大小。

Excel的Kutools 包括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:下一步
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護