用VBA根據單元格值動態改變圖片讓您無可匹敵

【用VBA根據單元格值動態改變圖片讓您無可匹敵】在Excel中通過改變單元格的值來更換圖片 , 通常需要把圖片插入到工作簿中 , 再用公式來更換 。 該方法在圖片較多時有些不便 , 這時可用VBA代碼來進行圖片更換 , 而無需插入這些圖片 。 步驟如下:
1.將所有圖片放在一個文件夾中 , 在下面的示例代碼中 , 圖片所在文件夾名稱為“圖片文件夾” , 并將該文件夾與工作簿放置在一起 。

用VBA根據單元格值動態改變圖片讓您無可匹敵

文章插圖

2.在工作表中插入一個圖片 , 設置其位置和大小 , 然后選擇該圖片 , 在Excel界面右上角的名稱框中輸入一個名稱后按回車鍵 。 在下面的示例代碼中 , 將圖片名稱設置為“圖片 1” 。
用VBA根據單元格值動態改變圖片讓您無可匹敵

文章插圖

3.在工作表中選擇某個單元格 , 如下面的示例代碼中的“J4”單元格 。 用設置數據有效性的方法制作一個下拉列表 , 這樣就可以通過下拉列表選擇來某個圖片名稱 。
用VBA根據單元格值動態改變圖片讓您無可匹敵

文章插圖

4.按Alt+F11 , 打開VBA編輯器 , 在代碼窗口中粘貼下面的代碼 。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$J$4" Then
Dim Pic As Object, PicPathAndName As String, PicFolder As String
Dim PicT As Integer, PicL As Integer, PicH As Integer, PicW As Integer
'圖片文件夾名稱
PicFolder = "圖片文件夾"
'所選圖片路徑
PicPathAndName = ThisWorkbook.Path & "\" & PicFolder & "\" & Range("J4") & ".jpg"
Set Pic = ActiveSheet.Shapes("圖片 1")
'原圖片的位置和大小
With Pic
PicT = .Top
PicL = .Left
PicH = .Height
PicW = .Width
End With
'刪除原圖片
Pic.Delete
'插入所選圖片
Set Pic = ActiveSheet.Shapes.AddPicture(Filename:=PicPathAndName, LinkToFile:=msoFalse, _
SaveWithDocument:=msoTrue, Left:=PicL, Top:=PicT, Width:=PicW, Height:=PicH)
'設置圖片名稱
Pic.Name = "圖片 1"
End If
Set Pic = Nothing
End Sub
這樣 , 當在J4單元格中選擇不同的圖片名稱后 , 工作表中的圖片會自動調用圖片文件夾中圖片進行更換 。

    推薦閱讀