VBA如何保持檔案乾淨
網誌圖文版:
http://www.b88104069.com/archives/4230
先前文章分享過如何保持檔案乾淨的兩個重點:刪除名稱和切斷連結。標準
流程是管理名稱、刪除名稱、編輯連結、刪除連結,像這樣子一再重覆的1
、2、3、4,依照自動化思維,如果有個指令讓Excel自動跑完這四個步驟,
豈不效率哉,以下具體分享:
一、利用自製的上方功能區,垂手可得「錄製巨集」,編輯名稱為「Delete
」,按「確定」。
二、執行文章開始所述的步驟1、2、3、4,結束後進行VBA,可以看到剛才
操作背後的程式碼。
三、錄製的巨集是刪除特定的名稱和連結,但我們目的是刪除所有名稱和連
結,因此必須修改巨集。仔細看程式碼,有兩個關鍵字「Names」和「
BreakLink」。在Excel官方支援中心,可知「Application.names屬性」代
表使用中活頁簿中所有的名稱。
四、嘗試參考所錄製的巨集程式碼,編寫「ActiveWorkbook.Names.Delete
」,執行後發現此路不通:「物件不支援此屬性或方法」。
五、從Names為所有名稱、而且錄製程式中每個Names有括號指定名稱,合理
想法為For Each Next依次將每個名稱刪除,修改後的程式碼如圖所示,實
地測試真的能刪除Excel中所有名稱。
六、接著研究如何刪除連結。例如「LinkSources」,本意為:「Returns
an array of links in the workbook. 」。
七、最後修改完成的程式碼。其中「If Not IsEmpty(Links) Then」為判斷
是否有連結,這是因為名稱為刪除「Delete」,連結為切斷「BreakLink」
。實際測試,如果不加判斷式,第一次執行可順利切斷連結,到了第二次執
行,程式會報錯,沒辦法完成,所以必須加判斷式。VBA畢竟較為複雜,不
太能理解的話,可以Google或者Yahoo一下,善用網路資源,是學習VBA的必
經之路。
在Excel高效率工作心法中,自動化是最高層級的追求目標。這一節所介紹
的小技巧:錄製巨集後瞭解程式、做點功課後再修改程式碼,便是Excel自
動化的實戰課程。只要能製作成複合指令的懶人包,便是屬於自己威力強大
的絕招。贊贊小屋下半年預計出版的書籍中,基本上是利用這個絕招將
Excel插上翅膀,飛到一個全新領域,敬請期待。
延伸閱讀:
Excel如何保持檔案乾淨
http://www.b88104069.com/archives/4181
Excel:巨集安全性設定和其它設定選項
http://www.b88104069.com/archives/1263
Excel如何設置儲存格格式並錄製巨集
http://www.b88104069.com/archives/1213