Note: The other languages of the website are Google-translated. Back to English

如何在Excel中將圖像URL轉換為實際圖像?

doc url到img 1

如果現在在A列中有一個圖像URL地址列表,那麼您想從URL下載相應的圖片,並將它們顯示在相鄰的B列中,如左圖所示。 在Excel中,如何快速,輕鬆地從圖像URL中提取實際圖片?

使用VBA代碼將圖像URL轉換為實際圖像

使用Kutools for Excel將圖像URL轉換為實際圖像


使用VBA代碼將圖像URL轉換為實際圖像

以下VBA代碼可以幫助您從圖片URL地址中快速提取實際圖片,請按以下步驟操作:

1。 按住 ALT + F11 鍵以打開“ Microsoft Visual Basic應用程序”窗口。

2。 點擊 插入 > 模塊,然後將以下代碼粘貼到“模塊窗口”中。

VBA代碼:將圖像URL轉換為實際圖像:

Sub URLPictureInsert()
Dim Pshp As Shape
Dim xRg As Range
Dim xCol As Long
On Error Resume Next
Application.ScreenUpdating = False
Set Rng = ActiveSheet.Range("A2:A5")
For Each cell In Rng
filenam = cell
ActiveSheet.Pictures.Insert(filenam).Select
Set Pshp = Selection.ShapeRange.Item(1)
If Pshp Is Nothing Then GoTo lab
xCol = cell.Column + 1
Set xRg = Cells(cell.Row, xCol)
With Pshp
.LockAspectRatio = msoFalse
If .Width > xRg.Width Then .Width = xRg.Width * 2 / 3
If .Height > xRg.Height Then .Height = xRg.Height * 2 / 3
.Top = xRg.Top + (xRg.Height - .Height) / 2
.Left = xRg.Left + (xRg.Width - .Width) / 2
End With
lab:
Set Pshp = Nothing
Range("A2").Select
Next
Application.ScreenUpdating = True
End Sub

筆記: 

  • 1.在上面的代碼中, A2:A5 是包含您要提取圖像的URL地址的單元格範圍,則應根據需要更改單元格引用。
  • 2.使用此代碼,您無法指定所需圖像的大小。
  • 3.上面的代碼只能將實際圖像提取到URL列之外的單元格中,您不能指定要輸出圖像的單元格。
  • 4.您應該對代碼有一些基本的了解,如果任何字符丟失或不正確,則代碼將無法成功執行。

3。 然後按 F5 鍵以運行此代碼,並且所有對應的圖片都已從圖片網址中一次提取到相鄰列中,並且這些圖片將放置在您特定單元格的中心,請參見屏幕截圖:

doc url到img 2


使用Kutools for Excel將圖像URL轉換為實際圖像

如果您不熟悉VBA代碼或想彌補上述代碼的局​​限性, Excel的Kutools's 插入圖片表格路徑(URL) 此功能可幫助您根據計算機中的URL地址或特定路徑快速插入對應的圖像,如下圖所示。 點擊下載Kutools for Excel!

備註:要應用此 插入圖片表格路徑(URL),首先,您應該下載 Excel的Kutools,然後快速輕鬆地應用該功能。

安裝後 Excel的Kutools,請這樣做:

1。 點擊 庫工具 > 插入 > 插入圖片表格路徑(URL),在彈出的對話框中,請設置以下操作,請參見屏幕截圖:

doc url到img 3 doc url到img 4

2。 然後,點擊 Ok 按鈕,圖片將從URL中提取,請參見屏幕截圖:

doc url到img 1

點擊下載並立即免費試用Excel的Kutools!


最佳辦公效率工具

Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部
按評論排序
留言 (61)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
您能否將“下一個錯誤恢復”更改為等到谷歌瀏覽器有時間打開圖片的內容? 我嘗試了這段代碼並且它可以工作,但是有些圖片被粘貼到它們應該在下面的幾行中,所以我假設“on error”語句沒有給它足夠的時間。 如果您認為這可能是其他內容或有任何其他建議,我願意聽取。 謝謝!
網站主持人對此評論進行了最小化
這是一個很大的幫助,太棒了
網站主持人對此評論進行了最小化
我已經嘗試過這個公式,但它似乎不起作用。 是否必須與 Excel 版本有關(不過我有最新版本)感謝您的回答
網站主持人對此評論進行了最小化
你遇到什麼問題?
網站主持人對此評論進行了最小化
運行時錯誤“1004”:無法獲取圖片類的插入屬性
網站主持人對此評論進行了最小化
這對我也不起作用。 我有 Excel 2013,我只需要一段簡單的代碼,它可以在我的電子表格列中的 url 之外插入圖像。 我嘗試過的每一個可以通過 Google 搜索或 YouTube 獲得的解決方案都呈現了圖片插入值錯誤。 我究竟做錯了什麼??? 網址不應該是超鏈接嗎? 他們應該是超鏈接嗎? 我應該確定輸出到的列範圍嗎? 我在任何地方都找不到簡單易懂的說明,請幫忙。 當我使用您的代碼時,我得到“無法獲取圖片的插入屬性”類:
網站主持人對此評論進行了最小化
我有同樣的問題,結果你需要檢查你的網址。 如果是 HTTPS,則意味著它是安全連接,VBA 將無法提取它。 如果是普通的 HTTP 應該沒有問題
網站主持人對此評論進行了最小化
謝謝你。 它對我有用我如何更改/修改語法以顯示受密碼保護的圖像 url
網站主持人對此評論進行了最小化
大家好,我已經修改了這些代碼,使其適用於所選範圍而不是輸入特定範圍,但是,任何人都可以建議我如何修改這些代碼以使圖像位於單元格的中心。 目前圖片顯示在左上角

子 URLPictureInsert()

將 Pshp 調暗為形狀

Dim rCell 作為範圍

在錯誤恢復下一頁

Application.ScreenUpdating = False

對於選擇中的每個 rCell

filenam = rCell ActiveSheet.Pictures.Insert(filenam).選擇

設置 Pshp = Selection.ShapeRange.Item(1)

使用 Pshp

.LockAspectRatio = msoTrue

.寬度 = 100

.高度 = 100

。切

結束

單元格(rCell.Row,rCell.Column + 1).PasteSpecial

下一個 Application.ScreenUpdating = True

END SUB
網站主持人對此評論進行了最小化
驚人的! 這太棒了! 我有 350 行超鏈接,只需 5 分鐘即可拉出所有圖像!
網站主持人對此評論進行了最小化
嘿,任何人都可以附上一個啟用宏代碼的excel錶鍊接,以便我可以下載和實驗,我是VB的新手,我非常需要這樣做。
網站主持人對此評論進行了最小化
對我來說,每個單元格中顯示的只是方法的名稱。 他們都說“Sub URLPictureInsert()”
網站主持人對此評論進行了最小化
效果很好,但誰能幫我添加一些東西來檢查圖像是否存在,如果不存在,在單​​元格中發布一個文本,如“圖像不可用”?
網站主持人對此評論進行了最小化
在 Excel 2010 中,我必須添加這些聲明

昏暗範圍
將單元格調暗為範圍
將文件名變暗為字符串
網站主持人對此評論進行了最小化
為了讓它在 Excel 2010 中工作,我必須添加這些聲明。


昏暗範圍
將單元格調暗為範圍
將文件名變暗為字符串
網站主持人對此評論進行了最小化
有什麼方法可以運行它,使其跨越一行而不是一列? 我嘗試簡單地更改圖像的範圍和最終位置,但它只會產生第一個單元格。
網站主持人對此評論進行了最小化
嗨,泰勒,
可能是下面的 VBA 代碼可以幫助您連續提取真實圖片的 URL:


子 URLPictureInsert()
將 Pshp 調暗為形狀
在錯誤恢復下一頁
Application.ScreenUpdating = False
設置 Rng = ActiveSheet.Range("A1:E1")
對於 Rng 中的每個單元格
文件名 = 單元格
ActiveSheet.Pictures.Insert(文件名).Select
設置 Pshp = Selection.ShapeRange.Item(1)
使用 Pshp
.LockAspectRatio = msoTrue
.寬度 = 100
.高度 = 100
。切
結束
單元格(cell.Row + 1,cell.Column).PasteSpecial
下一頁
Application.ScreenUpdating = True
END SUB

請嘗試一下,希望對您有所幫助。 謝謝!
網站主持人對此評論進行了最小化
嗨,大家好,
它很想讓它工作,但是當我在 VBA 中復制它並點擊運行時,我只得到這個文本:
子 URLPictureInsert()
你能幫我得到圖片縮略圖嗎?
網站主持人對此評論進行了最小化
你好,
應用代碼時,您可以更改圖片的寬度和高度大小以匹配您的單元格。
感謝您!
網站主持人對此評論進行了最小化
非常適合提取圖像,但它們是隨機放置的,而不是在預期的單元格中......來自 Office2016 的 Excel 365......
網站主持人對此評論進行了最小化
你好,DKcrm,
感謝您的評論,本文代碼已更新,請嘗試新的,希望對您有所幫助!
網站主持人對此評論進行了最小化
謝謝你的帖子。 我怎樣才能在單元格的中心獲得圖片。 使用當前代碼,圖片顯示在左上角
網站主持人對此評論進行了最小化
你好,汗,
下面的VBA代碼可以幫你把圖片提取出來放到單元格的中心,試試看。

子 URLPictureInsert()
將 Pshp 調暗為形狀
將 xRg 調暗為範圍
將 xCol 調暗
在錯誤恢復下一頁
Application.ScreenUpdating = False
設置 Rng = ActiveSheet.Range("A2:A6")
對於 Rng 中的每個單元格
文件名 = 單元格
ActiveSheet.Pictures.Insert(文件名).Select
設置 Pshp = Selection.ShapeRange.Item(1)
如果 Pshp 什麼都不是,那麼轉到實驗室
xCol = cell.Column + 1
設置 xRg = Cells(cell.Row, xCol)
使用 Pshp
.LockAspectRatio = msoFalse
如果 .Width > xRg.Width 則 .Width = xRg.Width * 2 / 3
如果 .Height > xRg.Height 則 .Height = xRg.Height * 2 / 3
.Top = xRg.Top + (xRg.Height - .Height) / 2
.Left = xRg.Left + (xRg.Width - .Width) / 2
結束
實驗室:
設置 Pshp = 無
範圍(“A2”)。選擇
下一頁
Application.ScreenUpdating = True
END SUB
網站主持人對此評論進行了最小化
不能讓它工作你能顯示這個請求的完整代碼嗎?
網站主持人對此評論進行了最小化
你好,
我想從特定文件夾中的 URL(A 列)下載圖像,並使用 B 列中的代碼/編號重命名相同的圖像。
網站主持人對此評論進行了最小化
你好,維平,
要將 URL 的圖像保存到文件夾中並用 B 列中的新名稱重命名它們,以下 VBA 代碼可能對您有所幫助:

注意:A 列包含 URL 地址,B 列包含新名稱。

#如果是 VBA7 那麼
Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
#別的
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
#萬一
子 URLPictureInsert()
將 I 調暗為整數
將 xStr 調暗為字符串
將 xFd 調暗為 FileDialog
將 xArr、xFdItem 調暗為變體
Application.ScreenUpdating = False
設置 xFd = Application.FileDialog(msoFileDialogFolderPicker)
如果 xFd.Show = -1 那麼
xFdItem = xFd.SelectedItems.Item(1)
xArr = Range("A2:B5").Value
對於 I = 1 到 UBound(xArr)
如果 xArr(I, 1) <> "" 那麼
xStr = Mid(xArr(I, 1), InStrRev(xArr(I, 1), "."), Len(xArr(I, 1)))
URLDownloadToFile 0, xArr(I, 1), xFdItem & "\" & xArr(I, 2) & I & xStr, 0, 0
如果結束
下一頁
如果結束
Application.ScreenUpdating = True
END SUB

請嘗試一下,希望對您有所幫助!
網站主持人對此評論進行了最小化
B列上的重命名部分上傳到文件夾中,但在圖片名稱旁邊添加了一個數字,我怎麼能省略它?

謝謝
網站主持人對此評論進行了最小化
嗨,大衛,
可能是下面的 vba 代碼可以幫助您提取 iimage 並重命名它們而不使用子前綴號,請嘗試。 希望它可以幫助你!

#如果是 VBA7 那麼
Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
#別的
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
#萬一
子 URLPictureInsert()
將 I 調暗為整數
將 xStr 調暗為字符串
將 xFd 調暗為 FileDialog
將 xArr、xFdItem 調暗為變體
Application.ScreenUpdating = False
設置 xFd = Application.FileDialog(msoFileDialogFolderPicker)
如果 xFd.Show = -1 那麼
xFdItem = xFd.SelectedItems.Item(1)
xArr = Range("A2:B5").Value
對於 I = 1 到 UBound(xArr)
如果 xArr(I, 1) <> "" 那麼
xStr = Mid(xArr(I, 1), InStrRev(xArr(I, 1), "."), Len(xArr(I, 1)))
URLDownloadToFile 0, xArr(I, 1), xFdItem & "\" & xArr(I, 2) & xStr, 0, 0
如果結束
下一頁
如果結束
Application.ScreenUpdating = True
END SUB
網站主持人對此評論進行了最小化
我的天啊!! 你只是提供了一個奇蹟,它就像一個魅力。 非常感謝。
網站主持人對此評論進行了最小化
範圍已設置,filenam = url 並且每次傳遞都會更改,Pshp 總是什麼都沒有。 有任何想法嗎
網站主持人對此評論進行了最小化
我使用的是 Intel I5 處理器、Windows 7 Professional 64 位、Office 2016 64 位。 我認為問題是 Excel 中的設置。 任何幫助將不勝感激。
範圍已設置,filenam = url 並且每次傳遞都會更改,Pshp 總是什麼都沒有,URL 已經過驗證,任何想法
網站主持人對此評論進行了最小化
嗨,skyyang,首先是這樣一個信息豐富的帖子。 我有一個問題,請你幫幫我。 使用您的此代碼,我只想提取一張圖片並將其放在特定的單元格中。 是否可以??
網站主持人對此評論進行了最小化
你好,肖茲布,
要根據需要將圖像放入任何其他單元格,請應用以下 VBA 代碼:

子 URLPictureInsert1()
'更新通過 Extendoffice 20180608
將 Pshp 調暗為形狀
將 xRg 調暗為範圍
將 xCol 調暗
在錯誤恢復下一頁
Set Rng = Application.InputBox("請選擇url單元格:", "KuTools for excel", Selection.Address, , , , , 8)
如果 Rng 什麼都不是,則退出 Sub
Set xRg = Application.InputBox("請選擇要放圖片的單元格:", "KuTools for excel", , , , , , 8)
如果 xRg 什麼都不是,則退出 Sub
Application.ScreenUpdating = False
對於我 = 1 到 Rng.Count
文件名 = Rng(I)
ActiveSheet.Pictures.Insert(文件名).Select
設置 Pshp = Selection.ShapeRange.Item(1)
如果 Pshp 什麼都不是,那麼轉到實驗室
xCol = cell.Column + 1
設置 xRg = xRg.Offset(I - 1, 0)
使用 Pshp
.LockAspectRatio = msoFalse
.寬度 = 80
.高度 = 80
.Top = xRg.Top + (xRg.Height - .Height) / 2
.Left = xRg.Left + (xRg.Width - .Width) / 2
結束
實驗室:
設置 Pshp = 無
範圍(“A2”)。選擇
下一頁
Application.ScreenUpdating = True
END SUB

請嘗試一下,希望對您有所幫助!
網站主持人對此評論進行了最小化
大家好,這個宏很棒。 但是,它並沒有真正將圖片添加到文件中,而是在我每次打開文件時生成圖片的鏈接。 因此我無法壓縮圖片,因為它們實際上並不在文件中。 你能幫我把圖片真正保存在文件中嗎?
網站主持人對此評論進行了最小化
你好! 我也有同樣的問題。
有沒有辦法在excel中有效地保存圖像? (並且沒有鏈接到外部)
這裡還沒有評論
載入更多
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護