Board logo

標題: [發問] 有關檔案大小問題 [打印本頁]

作者: jimmyhk    時間: 2011-9-14 19:09     標題: 有關檔案大小問題

近來我於一個 Excel 檔案內加入 VBA  程式,
每於更改部份程式碼/內容後存檔,
就會發現有一個奇怪的現象,
原 Excel 檔的容量應約為 300 - 400 KB.
但有時候會於該檔案更改少部份內容.
(例如於 Sheet1 的 A1 由  a 改為 b)
檔案的大小就會由 300 多 KB 跳增到 600 - 700KB.
即使馬上開回該檔案把 b 改回 a 也是一樣.
但有時候於使用一段時間後再存檔它又會再次變回小容量.

大家有沒有遇過類似的問題?  問題出在那裡?
(會否與暫存檔有關 ?)
作者: jsleee    時間: 2011-9-14 21:10

回復 1# jimmyhk


    我也有發現這樣的問題,但是也沒有找到真正的原因.....
    只是忽大忽小的程度沒有 300K-->600K這麼劇烈...
    大概都在 100K左右....
作者: jimmyhk    時間: 2011-9-14 22:13

回復 2# jsleee

我的差距很大~~~
因為我是用 TrueCrypt 建立了一個很少的地方 (1024KB) 用來放這個小檔案,
如果它一直是 300-400 KB 於使用上就沒有問題,
但一當它"變大"的時候就會出現磁碟容量不足,
結果就當 Excel 了...  :'(
作者: jimmyhk    時間: 2011-9-23 13:20

回復 1# jimmyhk

是否沒有人知道/遇過我這個問題.
因為我會把檔案放到 1.44MB 的 Floppy 使用.  (不要問題為什麼還要用 Floppy...)  :'(
所以對我影響很大
作者: jimmyhk    時間: 2011-9-23 23:53

於網上找到一個方法,
雖不明白原因為何,
但它馬上就給我的 xls 減了一半.

大家或可參考有關方法.

如果EXCEL檔案內的資料並不多,但該檔案大小卻很大,造成使用上問題

如果EXCEL檔案內的資料並不多,但該檔案大小卻很大,導致開啟、編輯、存檔、刪除等等動作都變得很慢,使用起來很吃力,原因為何?
Ans:

可能是EXCEL中有過多不需要的"物件",可透過下列方法快速刪除不是該檔案中所需要的"物件"
1.先將檔案另存新檔,以防萬一
2.點選"編輯"功能表,執行"到"的功能 (或同時按CTRL+G鍵),產生"到"索引標籤
3."到"索引標籤下,點選[特殊]鍵,於"特殊目標"下,將"物件"選項勾選按"確定",
再按"DEL"鍵,就會把物件刪除

若曾插入物件,刪除列時未事先把該物件刪掉,而是直接刪除列,此物件檔就會暗藏在列縫隙中,若剛好copy此列,就會連帶物件檔一起複製,以致檔案愈滾愈大,這就是問題的主要原因,所以刪除不需要的"物件",就可以恢復正常


http://my-db.blogspot.com/2009/07/excel_30.html
作者: register313    時間: 2011-11-16 12:54

看一下垂直捲軸
有時往下垂直捲動時
會捲出很多空白列(正常是捲到資料的最後一列)
把空白列整列刪除後再存檔
作者: jimmyhk    時間: 2011-11-17 07:16

看一下垂直捲軸
有時往下垂直捲動時
會捲出很多空白列(正常是捲到資料的最後一列)
把空白列整列刪除後再 ...
register313 發表於 2011-11-16 12:54



這個方法有試過, 但不是影響最大的地方.
作者: oobird    時間: 2011-11-17 11:05

基本上還是要知道自己的檔案肥大的原因對症下藥
別人的經驗不見得適用在自己的檔案上。
作者: Rickygaga    時間: 2012-12-25 12:05

我發現我2007版本檔案(含vba code)若是改用2002版本直接再存一次,可以從4MB直接瘦身成1MB,功能一樣都不少…只是不知道原因為何...有人知道嗎?
作者: fangsc    時間: 2012-12-25 12:24

我有遇過, 檔案裡太多的物件,將原本的8MB變成20MB.
原本不知道是物件的關係,直接開一個新的檔案,複製raw data, (要選取真正data的範圍再複製).
再慢慢加上所需的函數,程式,格式....一步一步看檔案大小的變化. 最後才發現是太多的物件讓檔案變得如此大.
作者: oobird    時間: 2012-12-25 13:18

本帖最後由 oobird 於 2012-12-25 13:34 編輯

文件如果設置了格式,檔案就變得肥大,後來就算把格式移除了也不能回復。
這是個簡單的示例文件,裡面什麼都沒有,但檔案很大,依此方式可把一個空白文件變成數百M大的。
通常大家莫明其妙檔案變得很肥大的原因多是這種情形。[attach]13682[/attach]


第一個說出正確減肥方法的有獎。
作者: Rickygaga    時間: 2012-12-25 13:27

fangsc 妳好~ 我比較好奇的是…我的物件一個也沒有少,但只是在2002版本中直接存檔,就立刻瘦身3/4
但是使用上功能又都正常,(物件沒少,function也一樣正常),現實生活中有這麼好康的瘦身方式就好了。 ~"~
作者: Rickygaga    時間: 2012-12-25 13:32

另外還有一件奇怪的事有關檔案大小…
同樣一個excel檔案(內含相同的VBA code及物件),在同一台pc中直接 "另存新檔"會有兩種情形:
1、(有開巨集),每次另存新檔後的檔案大小皆不相同(有大、有小)
2、(不開巨集),每次另存新檔後的檔案大小皆固定相同。
不知道有寫vba的大大是否也有相同的情形發生????
還是我的vba程式造成??
作者: fangsc    時間: 2012-12-26 08:01

回復 11# oobird


複製K欄格式到A:J欄,這個答覆對嗎?
不過,只知道A:J欄是空格(搜尋-特殊目標-空格),但看不出來設定了什麼格式,會讓檔案變這麼大.
作者: Rickygaga    時間: 2012-12-26 10:21

殘念…小學生無法down load。
所以依oobird大所言,這算是excel的一種bug嗎?(自我肥大症)
(使用上我也有發現excel跨版本使用時會有一些匪夷所思的bug)
作者: oobird    時間: 2012-12-30 11:14

回復 14# fangsc
你試試新開一個新檔,在地址欄輸入a1:z10000, enter後即選中這個範圍,把這個範圍隨便改個格式,例如設置為靠左對齊。
然後存檔,看看檔案有多大。
作者: fangsc    時間: 2013-1-1 00:52

回復 16# oobird

了解你的意思~~謝謝你.

新年快樂 !!
作者: mark15jill    時間: 2013-1-2 09:44

以下幾種情形也會造成表面上看起來無資料,但會占空間..

        1.格式複製(公式、篩選、格式化條件判斷、格式設定)
                公式:C欄位=A欄位+B欄位  若資料只有100列,但公式列卻拉到65535,則101~65535列仍會有此資料空間佔據。
                篩選:同字意,有時會自己不知道有無篩選,進而有空間佔據。
                格式化條件判斷:同字意。
                格式:字體粗細、字型、對齊方式、顏色設定
        2.檔中檔:有時候一個EXCEL檔案內會含很多檔案(如 Userform、Vba Code 、圖片檔、影音檔…)
        3.檔案格式:xls xlsm xlsx 都會有些微差距




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)