Excel速度问题探讨.
如何給Excel加快運(yùn)行速度
1、設(shè)備的配置是否合理?特別是Office 2003,功能的確是很強(qiáng)大了,但相應(yīng)的對硬件的要求也提高了。一般用戶都用Windows Xp系統(tǒng),然后裝Office 2003 ,當(dāng)然還有其他的軟件了,這樣的情況,我推薦的配置是:CPU P4 1G及以上,內(nèi)存256MB及以上,硬盤40G及以上。根據(jù)自己的計(jì)算機(jī)的配置情況,你也可能選擇只安裝部分(而不一定是全部)Office組件和工具。?
2、加載宏。Excel內(nèi)置了幾個(gè)加載宏程序,可以幫助我們實(shí)現(xiàn)一些高級功能。另外,我們自己也可以編寫,或者在網(wǎng)上也可以找到更多的各式各樣的加載宏程序。在使用加載宏時(shí)我可以給出的建議有:首先一定要確認(rèn)加載宏的來源是否正當(dāng)?下載后,安裝前,強(qiáng)烈推薦要先殺毒。其次,要用的時(shí)候再加載它,而不主張一直把所有的加載宏都加載上。?
3、自動(dòng)重算,自動(dòng)保存選項(xiàng)的考量。這兩個(gè)選項(xiàng)在一定程度上給我們的工作帶來了便利。但在有些時(shí)候(例如公式比較多的時(shí)候),特別是自動(dòng)重算,可能導(dǎo)致運(yùn)行速度變慢。前面提到:自動(dòng)保存選項(xiàng)也是可能導(dǎo)致文件增大的一個(gè)因素。有選擇性地在操作一些文件時(shí)關(guān)閉這兩個(gè)選項(xiàng),可能會(huì)對運(yùn)行速度有幫助。?
4、迭代計(jì)算選項(xiàng)的考量。出于某種特殊的需求,我們可能會(huì)允許工作簿進(jìn)行迭代計(jì)算,也就是循環(huán)引用(這種有目的的循環(huán)引用可以被用到解聯(lián)立方程等一些特殊的場合)。但是這種循環(huán)引用會(huì)導(dǎo)致工作表頻繁地被計(jì)算,當(dāng)工作表任何地方發(fā)生變化時(shí),就被重新計(jì)算一次。所以,這一點(diǎn)也是影響Excel速度的原因之一。建議不要勾上這個(gè)選項(xiàng)。??
5、不恰當(dāng)?shù)厥褂昧似渌恍┩獠抗ぞ呖赡軐?dǎo)致的問題。例如一些測試版的軟件,就好比目前的VSTO 2005 BETA2,這里面有一些針對Excel進(jìn)行編程的工具。安裝了這個(gè)工具后,或者即使后來卸載了這個(gè)工具后,Excel在讀文件,特別是內(nèi)部有宏的文件時(shí)非常奇怪地“吃”內(nèi)存,具體地說就是Excel會(huì)瘋狂地占用內(nèi)存,以致根本就無法正常工作。對于這種情況,有一個(gè)比較簡便的方法就是使用:幫助→檢測與修復(fù),有兩個(gè)選項(xiàng):修復(fù)時(shí)恢復(fù)快捷方式;放棄自定義設(shè)置并恢復(fù)默認(rèn)設(shè)置。如果兩個(gè)選項(xiàng)都選上了,或者至少第二個(gè)選項(xiàng)選上了的話,執(zhí)行修復(fù)完后一般都能解決這個(gè)問題。請注意:在執(zhí)行這個(gè)操作之前,請確定你已經(jīng)清楚這樣操作可能導(dǎo)致的一些問題(例如Outlook的個(gè)人數(shù)據(jù)文件可能需要重新指定:文件不會(huì)丟失,但修復(fù)完重新開Outlook前,請到控制面板→郵件對話框中指定你的個(gè)人數(shù)據(jù)文件)。?
----------
這個(gè)問題本身就是公式計(jì)算量太大引起的,跟文件大小沒太多的關(guān)系
如果你的工作表用太多的易失性函數(shù):比如COUNTIF、SUMIF、OFFSET等等函數(shù),每次激活或更新單元格,公式就會(huì)重新計(jì)算,還有比如用太多的VLOOKUP函數(shù)或數(shù)組公式,也會(huì)讓機(jī)子的運(yùn)算量增大,導(dǎo)致影響運(yùn)算速度。
可以設(shè)置為手動(dòng)重算,需要重算工作表時(shí)按F9更新,這樣就不會(huì)影響每次在錄入數(shù)據(jù)時(shí)的重算工作表,反過來說,這樣做(設(shè)置手動(dòng)重算)就不能在每次修改或新增數(shù)據(jù)后實(shí)時(shí)得到結(jié)果。用公式計(jì)算就是這樣,沒有太好的辦法了。
==========
轉(zhuǎn):如何給Excel減肥
第一部分:
如何給Excel工作簿減肥
除了工作簿本身有宏病毒(關(guān)于如何識(shí)別宏病毒,本文的結(jié)束處有說明)外,有下列的幾個(gè)原因可能導(dǎo)致工作簿異常膨脹
一。工作表中的格式過于復(fù)雜(如多種字體,多種顏色,條件格式等等)
我 們都知道,一個(gè)工作表有65536*256個(gè)單元格,這個(gè)非常大的一個(gè)范圍。我們在應(yīng)用一些格式設(shè)置時(shí),往往為了方便,直接在整行,或整列,或者在多行和 多列中應(yīng)用,這樣其實(shí)是不妥當(dāng)?shù)?。我相信很少有人?huì)用滿整列,或者整行。大量的沒有用到的單元格被加上了一些格式后,Excel并不總是知道這個(gè)單元格是 不需要用的,而往往在計(jì)算時(shí)會(huì)包括這些單元格。另外,格式的多樣性(包括字體,顏色等),勢必是要造成Excel文件體積變大。
1. 用盡量少的格式樣式,如字體和顏色,畢竟Excel的優(yōu)勢不是在于文書,版面的展示(那是Word,PowerPoint等的強(qiáng)項(xiàng))
2. 刪除“空白”的單元格。找到工作表中最右下角的單元格(請注意:除非你有自信,請不要過分依賴Excel 的"定位"=>"最后一個(gè)單元格"所給你的結(jié)果),我是說你可以手工找到這個(gè)單元格。然后選中這個(gè)單元格右邊所有的列,然后執(zhí)行菜單命令:"編輯" =〉"清除"=〉"全部",接下來,選中這個(gè)單元格下面所有的行,同樣執(zhí)行菜單命令:"編輯"=〉"清除"=〉"全部",然后保存,在實(shí)操中,有人按 Ctrl+Shift+向下鍵時(shí)選定了全面,并填充了公式,導(dǎo)致整個(gè)工作表容量變大,所以這里提醒各位注意.
二。圖片或者其他繪圖圖形較多,或者圖片選擇了不恰當(dāng)?shù)母袷?br /> 選擇適當(dāng)?shù)膱D片格式
在 文檔中引用的圖片格式一般有三種,BMP、JPG、GIF。
BMP格式保存的圖片保真度較高,但大小往往是其它兩種格式的幾倍至幾十倍,而照片、掃描圖片 等用GIF格式保存則失真非常嚴(yán)重,因此建議圖片先采用JPG格式保存,然后再引入到文檔中,這種格式的圖片大小不僅比BMP格式小很多,而且往往也比 GIF的格式小,而保真度與BMP格式則相差無幾。
利用“插入”引入圖片
插入圖片有兩種方法,
第一種, 是將圖片保 存為一個(gè)JPG格式的文件,選擇“插入→圖片→來自文件”,打開“插入圖片”對話框,選中所需插入的圖片文件,點(diǎn)擊“插入”即可。
另一種, 是用“畫圖”、 “Microsoft照片編輯器”等打開這個(gè)JPG文件,選中并復(fù)制,然后在文檔中點(diǎn)擊“粘貼”即可插入。
強(qiáng)烈建議大家采用第一種方法,雖然兩種方法得到 的圖片質(zhì)量是一樣的,但第一種方法所形成的文檔的大小可能會(huì)比第二種小幾十倍!有些人怕麻煩,但這效果帶來很大收益,就是令你的表格變小.值得做啊.徹底清除圖形對象:
例如我們自己畫的一些圖形,比如你現(xiàn)在不要用它們了,你選擇行或者列范圍刪除,清除都是清除不掉了,他們只是可能縮小了。
這個(gè)時(shí)候,就可以用到一個(gè)方法 :
1.先找到其中的一個(gè)文本框(找不到就自己添加一個(gè))
2.選中這個(gè)文本框,按F5--->定位條件--->對象-->確定
3.按Delete清除
4.保存關(guān)閉
5.看看現(xiàn)在文件有多大,打開看看速度還慢不慢
三。公式和名稱較多或者公式,名稱,數(shù)據(jù)透視表等所引用的單元格范圍過大,或?qū)⒐睫D(zhuǎn)換成數(shù)值
已經(jīng)不用或較長時(shí)間用不到的數(shù)據(jù),特別是公式鏈接引用的,可將其轉(zhuǎn)換為數(shù)值形式保存,避免了大量公式占用表格內(nèi)存空間,這也是導(dǎo)致運(yùn)行速度變慢的主要原因,如鏈接到網(wǎng)絡(luò)時(shí)保存可能會(huì)顯示路徑過深等不能保存情況。
選定要轉(zhuǎn)換的公式區(qū)域,按右鍵復(fù)制,注意不要移動(dòng)鼠標(biāo),再按右鍵選擇-選擇性粘貼,在彈出對話框里選擇數(shù)值確定即可。這樣把公式轉(zhuǎn)換成數(shù)值,使表格身材大減.
由 于和第二點(diǎn)類似的原因,我們在定義名稱,編寫公式,指定數(shù)據(jù)透視表的數(shù)據(jù)源時(shí)往往圖一時(shí)方便,而指定了過大的單元格范圍。
例如在A列中有包括標(biāo)題在內(nèi)的 10個(gè)數(shù)據(jù)(A1:A10),標(biāo)題為“姓名”,
我們現(xiàn)在要定義一個(gè)名稱,例如"姓名",很多人會(huì)用 插入=〉名稱=〉指定=〉首行,這當(dāng)然是方便的,但這樣的話“姓名”這個(gè)名稱就引用了A2:A65536,而不是實(shí)際的A2:A10。你能想象到兩者的差 別嗎?
這時(shí)候,有的朋友要說:我這樣做的原因是因?yàn)槲业臄?shù)據(jù)是在不斷增加的呀,我可不想每次在變動(dòng)的時(shí)候都去改這個(gè)名稱。
當(dāng)然,是對的,誰會(huì)愿意這樣做呢?
當(dāng) 我確信我定義的這個(gè)名稱所引用的范圍不可能是固定的時(shí)候,我采用了一個(gè)方法就是“動(dòng)態(tài)命名”。聽起來有點(diǎn)耳熟對嗎?請看這個(gè)例子:為簡單起見,我們假設(shè)數(shù) 據(jù)都是連續(xù)地在A10后面開始添加,也就是說我們希望當(dāng)我們添加到A15時(shí),這個(gè)"姓名"就如我所愿地指向A2:A15,而這一切都是自動(dòng)完成的。那么你 可以在"插入"=〉"名稱"=>"定義"對話框中,找到"姓名",然后修改引用位置為=OFFSET($A$2,0,0,COUNTA($A: $A)-1,1),然后點(diǎn)擊"添加"。請留步,先不要急著關(guān)閉這個(gè)對話框。你現(xiàn)在可以將鼠標(biāo)放在"引用位置"的這個(gè)框里面,由此來驗(yàn)證你要的結(jié)果??吹搅?嗎?工作表中那一閃一閃的區(qū)域就表示了目前"姓名"所引用的單元格范圍。
這只是一個(gè)簡單的示范,利用這種技巧,可能讓我們用最經(jīng)濟(jì)的方式得到我們需要的結(jié)果。
在公式引用中,在指定數(shù)據(jù)透視表的數(shù)據(jù)源時(shí),都可以運(yùn)用類似的技巧。當(dāng)然,我不會(huì)推薦你寫類似這樣的公式=CountA(OFFSET($A$2,0,0,COUNTA($A: $A)-1,1)),而是推薦你先定義好這個(gè)名稱,然后這樣寫公式:=CountA(姓名)
這種效果在數(shù)組公式中更明顯,除非你有足夠的耐心和勇氣,請不要在數(shù)組公式用引用過大的單元格范圍,特別是那些不必要的單元格。
請注意,以上的檢查應(yīng)該是針對工作簿中的所有工作表,包括隱藏的
四。VBA代碼,尤其是用戶窗體的影響(VBA偶不熟)
現(xiàn)在很多朋友都已經(jīng)學(xué)會(huì)了用VBE來構(gòu)建自己的工程,這是多么令人振奮的一件事!但今天我們要討論的是如何處理VBA工程可能帶來一些副作用以及如何壓縮它?
有很多測試證明,用戶窗體會(huì)是增加文件大小的比較突出的原因之一。而反復(fù)地改寫工程中模塊的代碼,也或多或少地會(huì)增加文件的大小(我們可以這樣理解:反復(fù)地改寫工程代碼,總是會(huì)留下一些痕跡和碎片)
對于這個(gè)問題,可以考慮將所有模塊,窗體,都導(dǎo)出為文件,然后保存,然后再依次導(dǎo)入。
關(guān)于用戶窗體,作為開發(fā)者應(yīng)該考慮的是:是否真的有必要用某個(gè)窗體?舉個(gè)簡單的例子,如果只是接收用戶輸入數(shù)值,就完全可以用InputBox方法或者屬性,而不需專門用一個(gè)窗體。同時(shí),工作表本身可以用來做用戶交互的界面,應(yīng)該充分利用。
五。外部鏈接(特別是死鏈接)的影響
有 的時(shí)候,我們的工作簿中可能包含了一些外部引用,這樣我們可以共享其他工作簿的一些信息。如果你的工作簿中包含外部鏈接,你可以通過"編輯"=>" 鏈接"對話框中查看到。默認(rèn)情況下,文件在打開時(shí),總是嘗試去鏈接源文件,以刷新數(shù)據(jù)。在保存時(shí),會(huì)紀(jì)錄鏈接的變化情況。
當(dāng)源文件的位置或者內(nèi)容發(fā)生變化時(shí),就可能產(chǎn)生死鏈接。
我個(gè)人非常不主張用鏈接方式來實(shí)現(xiàn)不同文件間數(shù)據(jù)的共享,這既不是最方便的方法,而且在文件分發(fā)過程中會(huì)遇到一些問題。我當(dāng)然知道數(shù)據(jù)共享是有意義的,但我經(jīng)常會(huì)嘗試用其他的途徑來實(shí)現(xiàn)。
六。關(guān)于自動(dòng)保存選項(xiàng)的考量
選 中這個(gè)選項(xiàng)時(shí),每次進(jìn)行保存文檔的操作則只保存文檔的修改部分,保存速度較快,但文檔的大小也會(huì)增加,即使是對文檔進(jìn)行刪減操作也是如此。目前計(jì)算機(jī)的速 度較快,因此開啟這項(xiàng)功能所帶來速度的增加毫不明顯,但付出的代價(jià)是文檔的大小急劇膨脹,建議不要選中這個(gè)選項(xiàng)。試著關(guān)閉這個(gè)選項(xiàng),再對文檔稍作修改,然 后保存,你會(huì)驚奇地發(fā)現(xiàn)文檔的大小會(huì)大幅度縮小!但在執(zhí)行此操作時(shí)要注意:你的電腦是否配有UPS不間斷電源,在不通知情況下斷掉電源可能會(huì)造成數(shù)據(jù)的丟 失。因此養(yǎng)成不時(shí)按Ctrl+S鍵保存文件是很重要,我自己經(jīng)常這樣做的,也推薦大家這樣。
七。文件異常退出(或者其他不可預(yù)見的原因)造成的工作簿內(nèi)工作表結(jié)構(gòu)方面的損壞
有時(shí)候,由于一些不可預(yù)見的原因(例如停電),Excel被迫異常退出。雖然目前沒有專門的工具可以檢測這種情況對工作簿內(nèi)部可能造成的損壞程度,但是有理由相信多少是有影響的。
如果你的文件中不存在前面提到的幾個(gè)問題,同時(shí)你還是確信文件體積不正常,你可以嘗試如下的方法
新 建一個(gè)工作簿,把現(xiàn)有文件中的工作表一一剪切到新的工作簿中。請注意這里用的是“剪切”方法,不是“移動(dòng)或復(fù)制工作表”,也不是“復(fù)制”。沒錯(cuò),就是先選 中工作表中的內(nèi)容,然后“剪切”,光標(biāo)移動(dòng)到目標(biāo)工作表,然后“粘貼”。這樣做唯一不足的地方就是,目標(biāo)工作表的行和列格式可能要稍微調(diào)整一下。
八。針對公司部分表格較大的表,可以實(shí)行工作簿分離
對于工作表容量較大,如在10MB以上的或運(yùn)行速度較慢時(shí),可以采用此方法。但由于分離出來的工作簿變成工作表了,數(shù)量將不斷大,所以必須規(guī)范歸好 檔,建議用文件夾歸類放好。你一個(gè)表3個(gè)工作簿30MB,分離出來變成三個(gè)工作表,假設(shè)每個(gè)工作簿是10MB的話,那分離出來的工作表就是10MB了, 10MB跟30MB運(yùn)行起來的差別大家可以試試.在公司我是要求他們盡量將大表分離出來.
第二部分:
如何給Excel加速
可能影響Excel的運(yùn)行速度的幾個(gè)方面
1。 設(shè)備的配置是否合理?特別是Office 2003,功能的確是很強(qiáng)大了,但相應(yīng)的對硬件的要求也提高了。一般用戶都用Windows Xp系統(tǒng),然后裝Office 2003 ,當(dāng)然還有其他的軟件了,根據(jù)自己的計(jì)算機(jī)的配置情況,你也可能選擇只安裝部分(而不一定是全部)Office組件和工具。
2。加載宏。 Excel內(nèi)置了幾個(gè)加載宏程序,可以幫助我們實(shí)現(xiàn)一些高級功能。另外,我們自己也可以編寫,或者在網(wǎng)上也可以找到更多的各式各樣的加載宏程序。在使用加 載宏時(shí)我可以給出的建議有:首先一定要確認(rèn)加載宏的來源是否正當(dāng)?下載后,安裝前,強(qiáng)烈推薦要先殺毒。其次,要用的時(shí)候再加載它,而不主張一直把所有的加 載宏都加載上。現(xiàn)在一般殺毒軟件都鉗入到OFFICE里
3。自動(dòng)重算,自動(dòng)保存選項(xiàng)的考量。這兩個(gè)選項(xiàng)在一定程度上給我們的工作帶來了便 利。但在有些時(shí)候(例如是公式比較多的時(shí)候),特別是自動(dòng)重算,可能導(dǎo)致運(yùn)行速度變慢。前面提到:自動(dòng)保存選項(xiàng)也是可能導(dǎo)致文件增大的一個(gè)因素。有選擇性 地在操作一些文件時(shí)關(guān)閉這兩個(gè)選項(xiàng),可能會(huì)對運(yùn)行速度有幫助。(不過注意在沒有設(shè)置重算后,數(shù)據(jù)的變化)
4。迭代計(jì)算選項(xiàng)的考量。出于某 種特殊的需求,我們可能會(huì)允許工作簿進(jìn)行迭代計(jì)算,也就是循環(huán)引用(這種有目的的循環(huán)引用可以被用到解聯(lián)立方程等一些特殊的場合)。但是這種循環(huán)引用會(huì)導(dǎo) 致工作表頻繁地被計(jì)算,當(dāng)工作表任何地方發(fā)生變化時(shí),就被重新計(jì)算一次。所以,這一點(diǎn)也是影響Excel速度的原因之一。建議不要勾上這個(gè)選項(xiàng)。
5。文件不正常(主要是本文第一部分所提到的一些情況)。這一項(xiàng)的解決不再贅述。
6。 不恰當(dāng)?shù)厥褂昧似渌恍┩獠抗ぞ呖赡軐?dǎo)致的問題。例如一些測試版的軟件,就好比目前的VSTO 2005 BETA2 ,這里面有一些針對Excel進(jìn)行編程的工具。有的朋友(請注意:只是可能)就會(huì)發(fā)現(xiàn),安裝了這個(gè)工具后,或者即使后來卸載了這個(gè)工具后,Excel在讀 文件,特別是內(nèi)部有宏的文件時(shí)非常奇怪地“吃”內(nèi)存,具體地說就是Excel會(huì)瘋狂地占用內(nèi)存,以致根本就無法正常工作。對于這種情況,有一個(gè)比較簡便的 方法就是使用:幫助=〉檢測與修復(fù) ,有兩個(gè)選項(xiàng):修復(fù)時(shí)恢復(fù)快捷方式;放棄自定義設(shè)置并恢復(fù)默認(rèn)設(shè)置。如果兩個(gè)選項(xiàng)都選上了,或者至少第二個(gè)選項(xiàng)選上了的話,執(zhí)行修復(fù)完后一般都能解決這個(gè) 問題。請注意:在執(zhí)行這個(gè)操作之前,請確定你已經(jīng)清楚這樣操作可能導(dǎo)致的一些問題(例如Outlook的個(gè)人數(shù)據(jù)文件可能需要重新指定:文件不會(huì)丟失,但 修復(fù)完重新開Outlook前,請到控制面板=〉郵件 對話框中指定你的個(gè)人數(shù)據(jù)文件)。強(qiáng)烈建議你要先閱讀相應(yīng)的幫助文檔。
第三部分:
如何識(shí)別宏病毒?
在VBE (Visual Basic編輯器)中,激活工程資源管理器,并定位到你要檢查的工作簿。 檢查工作簿中所有模塊(包括ThisWorkBook模塊)中的代碼,查看是否有你不熟悉的VBA代碼。病毒代碼往往格式混亂并且含有大量奇怪的變量名 稱。另一個(gè)選擇是使用市售的查毒軟件。
為保證安全,建議將OFFICE 的宏安全性級別設(shè)置為中級后者以上(請注意:如果設(shè)置為高級的話,你將不會(huì)收到任何的通知,Excel自動(dòng)禁止所有宏運(yùn)行)
第四部分:
結(jié)語
1。 正如我不止一次在新聞組中提到的一樣,Excel并不是設(shè)計(jì)用來存儲(chǔ)數(shù)據(jù)的。所以不推薦在Excel中存放太多的數(shù)據(jù)。雖然Excel工作簿所允許的工作 表數(shù)量并沒有什么具體的限制(Excel2003),但我推薦的工作表數(shù)量不要超過10個(gè)。即使前三部分提到的一些問題都解決好了,而數(shù)據(jù)量如此之大的 話,速度還肯定是慢的。
2。在你決定按照以上提到的一些方法進(jìn)行操作之前,建議你保留一份文件備份到安全的地方。
?
?
?
總結(jié)
以上是生活随笔為你收集整理的Excel速度问题探讨.的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DO-Conv 涨点模块
- 下一篇: 英语几个常见从句类型(复习)