正常做法(非正常做法可以直接拉到文末,就一個字“快”)
因為我原始處理的檔案有不能公開的資料,是以我單建了一個空表來示範,空表裡添加了一些空白窗體,我原始檔案使用代碼方法和非正常做法兩種方式都解決了問題,并且檢查了資料沒有丢失。
正常做法1、優點:操作簡單;缺點:如果對象很多,會非常慢,我需要處理的文檔因為長時間無響應,放棄這個做法了
打開檔案,按F5,打開定位,選擇“定位條件”

選擇“對象”,确定。
之前隐藏的對象就顯示出來了,按DEL鍵,删除,搞定收工。
正常做法2 優缺點跟第一個方法一樣,我也在長時間的無響應之後放棄了
選擇“頁面布局”,選擇“選擇窗格”,再選擇“全部顯示”,這些窗格也都顯示出來了,在右側選擇窗體名稱,可以一個一個删除。也可以選擇一個窗體名稱後,CTRL + A全選,按DEL删除
正常做法3 優點:跟我的非正常做法比起來還是EXCEL内部操作,比較安全;缺點一個是慢,期間很長時間無響應,不過隻要代碼跑開了就等就好了,我是多個表都有問題,是以跑的第二個代碼,成功解決問題了。
VBA解決,這個需要一點基礎
a) 隻有一個sheet有内容,很簡單就一句代碼
Sub main()
Activesheet.DrawingObjects.Delete
end sub
b) 需要删除所有工作表中的對象,也很簡單,加個循環
Sub Test()
Dim Sht As Worksheet
For Each Sht In Sheets
Sht.DrawingObjects.Delete
Next
End Sub
簡單說一下EXCEL 跑VBA代碼
打開檔案後,按Alt + F11,跳出VBA的調試界面,按F7打開代碼視窗,粘貼代碼進去,按F5跑代碼就好了
重點來了,非正常做法,我是在跑代碼的時候實在無聊,想到EXCEL2007之後版本的檔案其實是一個壓縮檔案,就從檔案結構想了一個歪招,事實證明可行,優點是無需打開出問題的EXCEL文檔(出了問題的EXCEL文檔打開就需要很久,非常的磨人),處理起來非常快!缺點是等于用外力拆解了原檔案,存在未知風險,一定要備份再搞
把出問題的EXCEL文檔備份一份,然後標明要修改的檔案名按F2把檔案擴充名“xlsx”改為zip,會提示“如果改變檔案的擴充名,可能會導緻檔案不可用。确實要修改嗎?”當然選确定
如果看不到檔案擴充名可以打開資料總管(win + E),點“檢視”,點“選項”,在彈出的視窗選“檢視”,下拉找到“隐藏已知檔案類型的擴充名”取消勾選
然後右鍵 打開方式 選擇“資料總管”。重點!用資料總管打開的好處是處理完不用再壓縮了,解壓處理完再壓縮有可能操作失誤連檔案夾一起壓縮,就會出問題
點開xl檔案夾
看到這個“drawings”檔案夾沒?這個就是我們要解決的問題,直接右鍵删除,如果excel文檔有圖檔這裡還會有一個media檔案夾,視情況删除
關閉資料總管(直接傳回上層目錄的話資料總管還工作在壓縮檔案的模式),再找到我們這個zip檔案,按F2,把檔案擴充名改回xlsx。打開工作簿,Excel提示我們“發現工作簿中的部分内容有問題……巴拉巴拉”選“是”
然後看到下面這個對話框,成功了!點“關閉”
恭喜你,搞定了,看,所有的窗格都已經删除了,記得儲存檔案哦