excel批量導(dǎo)入圖片一般是使用VBA代碼實現(xiàn),因為excel功能的局限性,插入——圖片,盡管可以批量導(dǎo)入圖片,但不能自動排版。
文章總結(jié)幾個excel批量導(dǎo)入圖片相關(guān)的案例,分享給大家。
excel批量導(dǎo)入圖片案例一:
如下圖所示:A列是姓名,D列需要批量導(dǎo)入A列姓名對應(yīng)的照片,當(dāng)單擊“圖片導(dǎo)入”按鈕,即可批量導(dǎo)入圖片。
下面的代碼實現(xiàn)的功能是:批量導(dǎo)入圖片,然后按照原比例縮放以填充單元格,如果單元格高寬改變,再次單擊“圖片導(dǎo)入”按鈕即可。
說明:對應(yīng)的圖片命名需要和姓名一致,圖片文件夾和excel源文件放在同一路徑之下。
下面是具體的代碼:
Sub 批量導(dǎo)入圖片()
‘將圖片導(dǎo)入。
‘圖片按照原比例存儲,按照原比例存儲
On Error Resume Next
Dim R&
Dim Pic As Object
‘先刪除所有可能存在的圖片
For Each Pic In Sheet1.Shapes
If Pic.Name <> Sheet1.Shapes("按鈕 97").Name Then
Pic.Delete
End If
Next
For R = 2 To Range("A65536").End(xlUp).Row
‘插入圖片
Set Pic = Sheet1.Pictures.Insert(ThisWorkbook.Path & "\pic\" & Cells(R, 1) & ".jpg")
‘鎖定高寬比
Pic.ShapeRange.LockAspectRatio = True
‘看高寬比。如果圖片高寬比高,那么調(diào)整到單元格高度,否則調(diào)整到單元格寬度
‘我們看到的右鍵格式菜單里的東西都是針對ShapeRange而言的,所以要用ShapeRange來設(shè)定
With Pic.ShapeRange
‘如果圖片高寬比比單元格大,說明圖片太高,只需調(diào)整圖片高度
If .Height / .Width > Cells(R, 4).Height / Cells(R, 4).Width Then
.Height = Cells(R, 4).Height
‘調(diào)整位置
.Top = Cells(R, 4).Top
.Left = Cells(R, 4).Left + (Cells(R, 4).Width – .Width) / 2
‘如果圖片高寬比比單元格小,說明圖片太寬,只需調(diào)整圖片寬度
Else
.Width = Cells(R, 4).Width
‘調(diào)整位置
.Left = Cells(R, 4).Left
.Top = Cells(R, 4).Top + (Cells(R, 4).Height – .Height) / 2
End If
End With
Next R
End Sub
我們在excel對圖片進(jìn)行排版時,可以選中圖片,勾選對齊網(wǎng)格,以及在插入圖片或控件時,按住Alt鍵并拖動對象的邊框,可以快速調(diào)整尺寸適應(yīng)單元格大小。