【VBA技巧】- N種方法從Excel中導出圖片,看這一篇就夠了
在SUT學習交流群(群號:615356012),有位魔都的小夥伴在使用Outlook群發Excel文件,還需要把ExcelSheet首頁截圖放在正文,至於如何使用VBA代碼群發郵件,可以移步【Excel VBA】- VBA結合Outlook批量發送郵件(一)和【Excel VBA】- 使用CDO批量發送郵件(二)進行學習。該小夥伴遇到的問題是使用斷掉調試截圖是正常的,但通過運行群發郵件,圖片就是空白的,具體的問題截圖如下:
通過分析該小夥伴發送的文件,單獨剝離出保存圖片的代碼並進行單獨調試,最終發現在Office 2007版本下可以正常導出,但Office 2016版本此代碼導出的圖片就是空白,小夥伴的保存圖片代碼如下:
由於低版本下代碼可以正常運行,高版本Office無法運行,第一反應是代碼中使用的ChartObjects是不是被微軟棄用了,進過一段時間的研究,只需要對代碼稍作修改,高版本的Office也可以導出圖片。
既然已經研究了許久,我總了以下幾種方法,可以很方便的從Excel中導出圖片。
方法一 7z解壓縮方法
該方法最簡單,可以批量從Excel文件中導出所有圖片,具體方法請見如下動態圖:
注意:使用7z解壓縮方法必須保持Excel文件處於關閉狀態,否則會出現另一進程在使用的錯誤提示。
方法二 另存為Htm文件法
通過文件名稱就可以知道需要把Excel文檔另存為Htm格式,這樣Excel文章中的所有圖片都會放入到.files文件夾中,具體方法詳見如下動態圖:
方法三 【VBA代碼】- 導出選定圖片
該方法通過選定需要導出的圖片,然後通過VBA代碼導出指定圖片,具體實現代碼如下:
代碼看似比較長,實際很容易理解,我已經增加了詳細注釋,接下來跟隨Steven一起演示一下吧。
方法四 【VBA代碼】- 導出全部圖片
方法三隻是導出指定的圖片,那如果希望一次導出所有的圖片,只需要通過循環語句即可批量導出,具體代碼如下:
代碼具體演示如下:
至於為啥有些圖片未導出,大夥看看代碼就知道是為啥,這裡就不再修改,有興趣的小夥伴自行修改吧。
方法五 【VBA代碼】- 導出單元格區域為圖片
這個功能就更強大了,可以把Excel中的單元格區域導出為圖片,不管Excel中本來是否有圖片,具體代碼太長,就不貼出來了,我們一起來看一下代碼執行的效果吧。
通過如上動態圖的演示,是不是感覺和在Excel選定區域並複製後,然後在QQ聊天窗口右鍵粘貼得到的效果一致呢?
好了,今天為大家介紹5種從Excel文檔中導出圖片的方法,大家可以根據自己適合的方法加以使用,如果需要在VBA代碼中加以調用,則可以通過VBA代碼方法,如果只是需要圖片,可以使用前2種方法得到。
如果學習過程中遇到任何問題,歡迎加群(QQ群:615356012)交流,素材的小夥伴可以在公眾號回復「20170815」得到哦~後期文章附帶的素材,大家都可以通過在公眾號回復該文檔發送的日期得到,歡迎下載學習^_^Written by Steven in 20170815^_^
微信公眾號:SaveUTime
SUT學習交流群:615356012,入群審核人:Steven
關注公眾號,提高效率,節約您的時間!
推薦閱讀: