Excel VBA 批量下載釘釘導(dǎo)出表格中的圖片并重命名
網(wǎng)友提問(wèn):


圖片放大




題外話,我對(duì)Excel合并單元格、多行表頭、使用圖片這些事情并不感興趣,也不推薦大家使用,曾經(jīng)有很多小伙伴問(wèn)我,在ExcelVBA第三季第2課上講的批量保存圖片到電腦怎么重命名成單元格中的名字。我都告訴他們 ,這個(gè)我沒(méi)深入研究過(guò),圖片是通過(guò)位置定位的,沒(méi)放在單元格中,讓網(wǎng)友自己網(wǎng)上找找。

今天網(wǎng)友這件事,我不會(huì),VBA我沒(méi)學(xué)與網(wǎng)絡(luò)相關(guān)的部分,我也沒(méi)深究過(guò)Excel里插入圖片。
有人說(shuō),不懂就別說(shuō)話了。不行,不懂才要說(shuō),就叫探索,用某些人的話說(shuō)這叫Discovery
我們按順序來(lái),先讓我們回到ExcelVBA第3季第2節(jié)課,2020年的那個(gè)冬天

我們當(dāng)時(shí)講了從Excel工作表中批量下載圖片的代碼:

但是,我們保存的圖片沒(méi)有前面單元格的名字。我們需要一個(gè)屬性TopLeftCell

很多小伙伴是不是有這樣一個(gè)想法,你們會(huì)想,這不瞎扯嗎?我們本身是初學(xué)者,你讓我們?cè)谖④浀膸椭臋n里大海撈針?No! 我沒(méi)讓你們這么做,我寫(xiě)出來(lái)的原因是告訴小雷他們,這個(gè)屬性不是他們發(fā)明的,是微軟發(fā)明的。你們學(xué)習(xí)時(shí),不是這樣找,問(wèn)搜索引擎就可以

但是他的代碼根本就運(yùn)行不了,評(píng)論區(qū)很多人在說(shuō)這件事。他代碼肯定發(fā)布在我的ExcelVBA第三季之后(我對(duì)網(wǎng)頁(yè)已經(jīng)截圖),不存在誰(shuí)借鑒誰(shuí),如果真的借鑒我的代碼,那也不至于不能運(yùn)行。我的所有課程和分享的代碼都是希望大家在任何場(chǎng)景使用,拿出來(lái)講課我也是歡迎的。


當(dāng)初就是這哥們兒向我提出,我的代碼換表就不能用了,我說(shuō)你寫(xiě)代碼我換表試試,他說(shuō)憑什么。

你們從網(wǎng)上找輪子修改成自己的代碼時(shí),就很容易出這樣的問(wèn)題,因?yàn)椴欢淅碣Q(mào)然修改。
但是他代碼雖然運(yùn)行不了,不管他從誰(shuí)那里找來(lái)的,有一個(gè)地方是可參考的,就是藍(lán)色框地方使用了TopLeftCell屬性配合offset就可以取單元格了。把這個(gè)屬性放到我們的代碼中測(cè)試一下
運(yùn)行后,真的成功了!yeah!非常感謝這位網(wǎng)友的方法,雖然你沒(méi)有讓代碼起飛,但是我們做到了。

現(xiàn)在第一個(gè)問(wèn)題,保存圖片上讓他重命名解決完了。再說(shuō)第二個(gè)問(wèn)題
當(dāng)我把鼠標(biāo)放在圖片上時(shí),會(huì)顯示這個(gè)圖片所在的網(wǎng)址

要解決第二個(gè)問(wèn)題,就要拿到圖片的網(wǎng)址,我遍歷所有的Shapes,打印他們的名字,就拿到網(wǎng)址了。

最后就是下載網(wǎng)址,例如 http://XXX.XXX.XXX/pic/123.png? 我們有了它,把它下載到硬盤(pán)上就行了。不懂就問(wèn)搜索引擎

人家的代碼我們不能直接用,因?yàn)樾枨蟛灰粯?,但是,我們可以找到我們需要的東西。例如這位網(wǎng)友的代碼,打碼的都是我們用不到的,沒(méi)打碼的就是我們能用到的。

我們將他下載url的代碼寫(xiě)到我們的程序中,幫我們辦事。
運(yùn)行后:

那有些小伙伴會(huì)問(wèn),你怎么知道哪句代碼是做什么工作的?那你得順序?qū)WExcelVBA呀
比如我的能力做不了騰訊的創(chuàng)始人,但是我知道誰(shuí)是騰訊的創(chuàng)始人。
可能你一輩子也不會(huì)變成ExcelVBA高手,但是你其碼要有讀懂別人代碼的能力。
本文章配套課件在評(píng)論區(qū)分享給大家了。如果你自己的表用不了這個(gè)代碼,說(shuō)明你的表和他不一樣,要根據(jù)你表的情況寫(xiě)代碼。如果對(duì)保存文件名有組合需求,例如姓名+性別+電話,可以在最后一列,新建列把前面的單元格組合起來(lái)。
孫興華的VBA代碼都是拼出來(lái)的 ,但是每一個(gè)函數(shù)、方法、屬性都是微軟發(fā)明的。
家里有孩子的小伙伴,可以把這個(gè)方法分享給老師,這個(gè)是目前學(xué)校統(tǒng)計(jì)工作的剛需。

ExcelVBA合集:https://www.bilibili.com/video/BV1rt4y1a72y
更多教程:https://www.bilibili.com/read/cv10222110