1工作表中存在大量的細(xì)小圖形對(duì)象

工作表中如果存在大量的細(xì)小圖形對(duì)象,那么文件體積就可能在用戶毫不知情的情況下暴增,這是一種很常見的“Excel肥胖癥”??梢允褂孟旅鎯煞N方法來檢查Excel工作表是否存在這種癥狀。

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

如果工作簿中包含多個(gè)工作表,需要在每個(gè)工作表中用這種方法進(jìn)行查找。關(guān)于“定位”功能的更多技巧,請(qǐng)參閱技巧28。

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

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

SubCountShapes()

DimnAsDouble

DimwsAsWorksheet

DimContentAsString

ForEachwsInWorksheets

n=ws.Shapes.Count

Content=Content&”工作表”&ws.Name&”有”&n&”個(gè)對(duì)象”&vbCrLf

Next

MsgBoxContent

EndSub

最后,按F5鍵來運(yùn)行這段代碼,就能看到檢查結(jié)果。在看似空白的工作表中,存在著大量的圖形對(duì)象,如圖2所示。

如果確認(rèn)在工作表中存在大量的對(duì)象,而用戶并不需要它們,可以用兩種方法來處理:

(1)剛才的定位方法中,當(dāng)對(duì)象全部處于被選擇狀態(tài)時(shí)按鍵刪除它們即可。

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

只刪除活動(dòng)工作表中特定大小的對(duì)象的代碼為:

SubDelShapes()

DimspAsShape,n

ForEachspInActiveSheet.Shapes

Ifsp.Width<14.25Andsp.Height<14.25Then

sp.Delete

n=n+1

EndIf

Nextsp

MsgBox”共刪除了”&n&”個(gè)對(duì)象”

EndSub

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

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&”個(gè)對(duì)象”&vbCrLf

n=0

Next

MsgBoxContent

EndSub

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

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

2工作表中在較大的區(qū)域內(nèi)設(shè)置了單元格格式或者條件格式

仔細(xì)觀察工作表滾動(dòng)條,如果滑標(biāo)很小,且拖動(dòng)滑標(biāo)向下到底,可以到達(dá)很大的行號(hào)或列標(biāo),可是工作表中實(shí)際使用到的區(qū)域很小,如圖3所示。這就說明,有相當(dāng)大一塊區(qū)域可能被設(shè)置了單元格格式或者條件格式,這些并沒有被用到的單元格,能對(duì)文件體積產(chǎn)生很大的影響。

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

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

如果需要在一行或一列的很大范圍設(shè)置統(tǒng)一的單元格格式,可以選擇整行或整列設(shè)置單元格格式,而不要只選擇行列的一部分單獨(dú)設(shè)置格式。前者不會(huì)造成文件體積虛增的問題,而后者會(huì)增加文件體積。試驗(yàn)一下在兩個(gè)Excel文件里面分別對(duì)A1∶A65536設(shè)置單元格格式和對(duì)A∶A設(shè)置單元格格式,目的都是為A 列設(shè)置格式,但最終文件的體積相差100倍以上。

贊(0) 打賞
未經(jīng)允許不得轉(zhuǎn)載:路由網(wǎng) » Excel 工作簿優(yōu)化技巧
分享到

相關(guān)推薦

更好的WordPress主題

支持快訊、專題、百度收錄推送、人機(jī)驗(yàn)證、多級(jí)分類篩選器,適用于垂直站點(diǎn)、科技博客、個(gè)人站,扁平化設(shè)計(jì)、簡(jiǎn)潔白色、超多功能配置、會(huì)員中心、直達(dá)鏈接、文章圖片彈窗、自動(dòng)縮略圖等...

聯(lián)系我們聯(lián)系我們

覺得文章有用就打賞一下文章作者

非常感謝你的打賞,我們將繼續(xù)提供更多優(yōu)質(zhì)內(nèi)容,讓我們一起創(chuàng)建更加美好的網(wǎng)絡(luò)世界!

支付寶掃一掃

微信掃一掃

登錄

找回密碼

注冊(cè)