今天接到一個(gè)朋友的求助,說(shuō)她一個(gè)表格突然變得很大,由原來(lái)的幾百k變成4M,更要命的打開(kāi)時(shí)候特別慢,需要2分鐘左右,更更痛苦的是修改數(shù)據(jù)、保存等操作的時(shí)候卡得要死,這幾天心情因?yàn)檫@個(gè)事情而變得很不好。
發(fā)過(guò)來(lái)一看。確實(shí)打開(kāi)異常慢,需要幾乎2分鐘。
該excel文件里有十幾個(gè)工作表,每個(gè)表數(shù)據(jù)也不是很多,大概最多的工作表里也就有幾千條數(shù)據(jù)。
那么,我就按常理考慮這個(gè)文件之所以卡死的原因。
第一,可能是使用了大量的數(shù)組公式,比如用了sumproduct這樣的數(shù)組公式,而且使用數(shù)組公式的單元格區(qū)域很多。
結(jié)果,我一檢查,沒(méi)有什么特別的函數(shù)公式,更沒(méi)有用sumproduct類(lèi)似的數(shù)組公式。
第二,可能是對(duì)表格很多的整列或整行使用了各種格式設(shè)置,比如條件格式,有效性,顏色填充等什么的。
結(jié)果,我一檢查,只有幾個(gè)表格有對(duì)整列或整行做了一些有效性設(shè)置和顏色填充設(shè)置。但實(shí)際上這些設(shè)置不會(huì)造成表格動(dòng)不動(dòng)卡死的。我立即著手選中空白行和空白列,然后全部清除一遍內(nèi)容。比如我選中第100行(第100行及之后的所有行都沒(méi)有任何內(nèi)容了),然后按ctrl+shift+↓,就選取了從100行開(kāi)始的一直到下面所有的空白行,最后,開(kāi)始選項(xiàng)卡,編輯組,全部清除。
這些做完后,發(fā)現(xiàn)卡死的情況依舊。保存后文件的容量沒(méi)有明顯減少。
第三,我懷疑可能是外部鏈接過(guò)多或者名稱(chēng)管理器里有太多的名稱(chēng)。
結(jié)果一檢查呢,外部鏈接沒(méi)有,定義名稱(chēng)就十幾個(gè),且名稱(chēng)里沒(méi)有什么外部鏈接。
第四,那就是表格里有很多圖片、形狀、線條、按鈕、控件等對(duì)象。這種對(duì)象,一旦非常多,經(jīng)常會(huì)造成卡死的現(xiàn)象的。為什么,一開(kāi)始我沒(méi)想到這種原因呢。其實(shí)在于我打開(kāi)這個(gè)工作簿,肉眼沒(méi)有直接發(fā)現(xiàn)這些對(duì)象(比如圖片,比如線條,比如按鈕)。
我認(rèn)真檢查了幾個(gè)表,基本上每個(gè)表過(guò)一遍。當(dāng)然切換工作表的過(guò)程中,工作簿不斷卡死,我只能等幾分鐘,等表格緩過(guò)氣來(lái)繼續(xù)到另一個(gè)工作表里去找。
結(jié)果,在一個(gè)工作表里發(fā)現(xiàn)了很多形狀對(duì)象,但是這些對(duì)象特別特別小,肉眼看不見(jiàn)的。我是用定位功能發(fā)現(xiàn)的,F(xiàn)5或ctrl+G,定位條件,對(duì)象。
不過(guò)定位功能,在本身工作簿就比較卡的情況下,選中這些數(shù)量很多的對(duì)象會(huì)異常的慢,等待都選中這些對(duì)象后按delete鍵刪除。某個(gè)工作表,為了刪除這些對(duì)象,足足用了10分鐘。
保存后,首先工作簿容量變小了點(diǎn),變成2M多,但是卡死的現(xiàn)象似乎沒(méi)有明顯緩解。估計(jì)還是有某個(gè)或某幾個(gè)表里有大量的對(duì)象。
于是又一頓各種找,終于確定某個(gè)明細(xì)表里,存在著大量的這種對(duì)象。這時(shí)候再通過(guò)定位功能捕捉對(duì)象,發(fā)現(xiàn)幾乎是不可能完成的任務(wù)。我嘗試了5、6次,每次以excel崩潰而告終。
最后的最后,我用了一段vba代碼來(lái)清除這些對(duì)象了。手動(dòng)刪除已經(jīng)搞不定了。
這段神奇的代碼,其實(shí)很簡(jiǎn)單的。但是在處理特別的問(wèn)題時(shí)候,真的太的N次方有用?。?/p>
Sub 刪除對(duì)象()
For Each sh In Worksheets
For Each shp In sh.Shapes
shp.Delete
Next
Next
End Sub
這段代碼就是找到工作簿里的每一個(gè)對(duì)象,然后刪除它。
比如下面這個(gè)示例文件。好幾個(gè)工作表里有很多七七八八的形狀、圖片、控件等對(duì)象。
那么怎么用呢?步驟如下:
1、在工作簿里,按ALT+F11,然后進(jìn)入VBA編輯頁(yè)面,視圖里,點(diǎn)工程資源管理器,如下圖
2、插入,模塊,如下圖
3、把上面的代碼復(fù)制粘貼到模塊1的右邊的空白窗口里。下圖所示。
4、最后,點(diǎn)擊運(yùn)行按鈕,如圖所示。大概幾秒鐘就清除了上百個(gè)對(duì)象。
但我上面提到的那個(gè)卡得讓人崩潰的文件,我用這代碼執(zhí)行了有好幾分鐘吧,具體時(shí)間我也沒(méi)記錄。成功后,當(dāng)然不需要這段代碼啦,那就刪除這段代碼,右鍵單擊“模塊1”,移出模塊1,不保存。然后關(guān)閉vba編輯窗口。最后,保存你的工作簿,你會(huì)發(fā)現(xiàn),工作簿容量少了很多。
我上面提到的那個(gè)文件,經(jīng)過(guò)這一番辛苦的處理,最后文件容量是500多k。打開(kāi)編輯等速度,也非常的快了。
此代碼值得你擁有。
更多活靈活現(xiàn)淋漓盡致酣暢淋漓的解讀,
更多Excle,PPT,Word 實(shí)戰(zhàn)技能足以讓你傲視群雄
請(qǐng)參考這套課程,500節(jié)大餐,饕餮之夜等您開(kāi)啟
《Excel+PPT+Word小白變大神[475節(jié)]》
不用太久,你一定也能成為職場(chǎng)辦公軟件高手!
就這一套課程,李則見(jiàn)老師能確保您達(dá)到這樣的高手境界!
《Excel+PPT+Word小白華麗蛻變高手修煉營(yíng)[永久]》
我能確保!我能承諾!只要你認(rèn)真持續(xù)學(xué)習(xí)!
火速購(gòu)買(mǎi)如下課程,真的不是忽悠?。?!品質(zhì)擔(dān)保!
全網(wǎng)絡(luò)唯一一款貨真價(jià)實(shí),實(shí)至名歸,表里如一的良心課程?。。?/span>
視頻永久收看!
半年后確保你從小白逆襲成為一頂一的高手,
下一個(gè)office大神就是你!
聯(lián)系客服