萬盛學電腦網

 萬盛學電腦網 >> Excel教程 >> excel綜合 >> Excel 工作簿優化技巧

Excel 工作簿優化技巧

Excel 工作簿優化技巧 三聯

EXCEL教程

  1工作表中存在大量的細小圖形對象

  工作表中如果存在大量的細小圖形對象,那麼文件體積就可能在用戶毫不知情的情況下暴增,這是一種很常見的“Excel肥胖症”。可以使用下面兩種方法來檢查Excel工作表是否存在這種症狀。

  (1)在工作表中按鍵調出“定位”對話框,單擊“定位條件”按鈕,在“定位條件”對話框中選擇“對象”項,單擊“確定”,如圖1所示。然後觀察工作表上是否會顯示很多被選定的對象。

  如果工作簿中包含多個工作表,需要在每個工作表中用這種方法進行查找。關於“定位”功能的更多技巧,請參閱技巧28。

  注意:隱藏列或行中的對象利用這種方法無法被看到。

  (2)用VBA對工作簿中的對象進行計數,查看在每個工作表中實際存在的對象數量,如果此數量不合理,就說明有問題。按打開VBA編輯器窗口,單擊菜單“插入”→“模塊”來插入一個新模塊,默認情況下為“模塊1”,然後在模塊1的代碼窗口中輸入以下代碼:

  SubCountShapes()

  DimnAsDouble

  DimwsAsWorksheet

  DimContentAsString

  ForEachwsInWorksheets

  n=ws.Shapes.Count

  Content=Content&"工作表"&ws.Name&"有"&n&"個對象"&vbCrLf

  Next

  MsgBoxContent

  EndSub

  最後,按F5鍵來運行這段代碼,就能看到檢查結果。在看似空白的工作表中,存在著大量的圖形對象,如圖2所示。

  如果確認在工作表中存在大量的對象,而用戶並不需要它們,可以用兩種方法來處理:

  (1)剛才的定位方法中,當對象全部處於被選擇狀態時按鍵刪除它們即可。

  (2)使用宏在多個工作表中更加精確地刪除這些無用對象。比如,可以根據需要只刪除高度和寬度都小於14.25磅(0.5cm)的對象。

  只刪除活動工作表中特定大小的對象的代碼為:

  SubDelShapes()

  DimspAsShape,n

  ForEachspInActiveSheet.Shapes

  Ifsp.Width<14.25Andsp.Height<14.25Then

  sp.Delete

  n=n+1

  EndIf

  Nextsp

  MsgBox"共刪除了"&n&"個對象"

  EndSub

  刪除所有工作表中的特定大小的對象的代碼為:

  SubDelAllShapes()

  DimwsAsWorksheet

  DimspAsShape

  DimnAsDouble

  DimContentAsString

  ForEachwsInWorksheets

  ForEachspInws.Shapes

  Ifsp.Width<14.25Andsp.Height<14.25Then

  sp.Delete

  n=n+1

  EndIf

  Next

  Content=Content&"工作表"&ws.Name&"刪除了"&n&"個對象"&vbCrLf

  n=0

  Next

  MsgBoxContent

  EndSub

  這些令人疑惑的對象的產生原因可能有以下幾個。從網頁上復制內容後直接粘貼到工作表中,而沒有使用選擇性粘貼。無意中使用繪圖工具欄的直線工具或其他繪圖工具,不知不覺中在工作表中插入了小的直線或其他圖形對象,由於尺寸很小,於肉眼幾乎無法看到。而後,又通過單元格的復制產生了大量的小繪圖對象。在工作表中插入了圖片或其他繪圖對象,操作中又將其高度寬度設為0或很小的值,通過復制產生了大量的對象。

  在行或列的位置中插入了繪圖對象,對象的屬性為“大小位置隨單元而變的(默認的)”,然後隱藏行或列,或設置行高或列寬為很小的值,從而使插入的對象不能看到。工作表中的對象設置了不可見屬性(Visible=false),或對象的線條與填充色均設與背景色相同,使對象無法被看到。

  2工作表中在較大的區域內設置了單元格格式或者條件格式

  仔細觀察工作表滾動條,如果滑標很小,且拖動滑標向下到底,可以到達很大的行號或列標,可是工作表中實際使用到的區域很小,如圖3所示。這就說明,有相當大一塊區域可能被設置了單元格格式或者條件格式,這些並沒有被用到的單元格,能對文件體積產生很大的影響。

  解決辦法如下。單擊到真正需要的行號的下一行,按組合鍵,選擇所有的多余行(也可以在名稱框中輸入行號如2000∶65536),單擊菜單“編輯”→“清除→“格式”(或全部)。同理,也可以清除多余列的格式。

  有時,用戶確實需要為工作表中空白的區域預設格式,以備將來增加數據之用,但一定要使用正確的方法,否則就會造成大量用不到的區域被預設了格式,徒增文件體積。

  如果需要在一行或一列的很大范圍設置統一的單元格格式,可以選擇整行或整列設置單元格格式,而不要只選擇行列的一部分單獨設置格式。前者不會造成文件體積虛增的問題,而後者會增加文件體積。試驗一下在兩個Excel文件裡面分別對A1∶A65536設置單元格格式和對A∶A設置單元格格式,目的都是為A 列設置格式,但最終文件的體積相差100倍以上。

copyright © 萬盛學電腦網 all rights reserved