45IT.COM- 電腦學習從此開始!
DIY硬件教程攢機經驗裝機配置
設計Photoshop網頁設計特效
系統注冊表DOS系統命令其它
存儲主板顯卡外設鍵鼠內存
維修顯卡CPU內存打印機
WinXPVistaWin7unix/linux
CPU光驅電源/散熱顯示器其它
修技主板硬盤鍵鼠顯示器光驅
辦公ExcelWordPowerPointWPS
編程數據庫CSS腳本PHP
網絡局域網QQ服務器
軟件網絡系統圖像安全

用VBA根據單元格值動態改變圖片

電腦軟硬件應用網 45IT.COM 時間:2017-09-22 16:27 作者:佚名
在Excel中通過改變單元格的值來更換圖片,通常需要把圖片插入到工作簿中,再用公式來更換。該方法在圖片較多時有些不便,這時可用VBA代碼來進行圖片更換,而無需插入這些圖片。步驟如下: 1.將所有圖片放在一個文件

在Excel中通過改變單元格的值來更換圖片,通常需要把圖片插入到工作簿中,再用公式來更換。該方法在圖片較多時有些不便,這時可用VBA代碼來進行圖片更換,而無需插入這些圖片。步驟如下:

1.將所有圖片放在一個文件夾中,在下面的示例代碼中,圖片所在文件夾名稱為“圖片文件夾”,并將該文件夾與工作簿放置在一起。

將圖片文件夾與工作簿放置在一起

2.在工作表中插入一個圖片,設置其位置和大小,然后選擇該圖片,在Excel界面右上角的名稱框中輸入一個名稱后按回車鍵。在下面的示例代碼中,將圖片名稱設置為“圖片 1”。

設置圖片名稱

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

設置下拉列表來選擇圖片名稱

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單元格中選擇不同的圖片名稱后,工作表中的圖片會自動調用圖片文件夾中圖片進行更換。

頂一下
(0)
0%
踩一下
(0)
0%
------分隔線----------------------------
發表評論
請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
評價:
表情:
驗證碼:點擊我更換圖片
推薦知識
女校体操队返水