使用VBA自動插入圖片的方法
如下表所示,當在A列的單元格中輸入內(nèi)容時,希望E列的相應(yīng)單元格能夠自動插入對應(yīng)的圖片。手動插入圖片既繁瑣又費時,下面將介紹一種使用VBA自動插入圖片的方法。步驟1. 點擊Excel工具欄中的【開發(fā)工具
如下表所示,當在A列的單元格中輸入內(nèi)容時,希望E列的相應(yīng)單元格能夠自動插入對應(yīng)的圖片。手動插入圖片既繁瑣又費時,下面將介紹一種使用VBA自動插入圖片的方法。
步驟
1. 點擊Excel工具欄中的【開發(fā)工具】選項,再點擊【Visual Basic】按鈕。
2. 在VBA編輯器中,雙擊“Sheet1”工作表。
3. 在Sheet1代碼框中,輸入以下VBA程序代碼:
```vba
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i, arr, str, typ, shp
'忽略運行中可能出現(xiàn)的錯誤
On Error Resume Next
'關(guān)閉觸發(fā)連鎖事件
Application.EnableEvents False
'關(guān)閉工作表更新,提高運行速度
False
'如果改變的單元格在A1:A999且只是1個單元格,則執(zhí)行以下操作
If < 1000 And 1 And 1 Then
'追蹤單元格所在的行
i
'定義Sheet1工作表
Set mysheet1 ("Sheet1")
'圖片格式集合
arr Array(".jpg", ".jpeg", ".png", ".bmp", ".gif", ".tif")
'掃描工作表里面的每一張圖片
For Each shp In
'如果是追蹤單元格對應(yīng)的E列單元格里邊的圖片,則刪除
If > mysheet1.Cells(i, 6).Top And < mysheet1.Cells(i 1, 6).Top Then
End If
Next
'如果A列改變的單元格不為空白,則執(zhí)行以下操作
If mysheet1.Cells(i, 1) <> "" Then
'執(zhí)行圖片格式組里面的每一個嘗試
For Each typ In arr
'圖片路徑(D盤ABCDE文件夾里邊)
str "D:ABCDE" mysheet1.Cells(i, 1).Value typ
'如果圖片存在,則執(zhí)行以下操作
If Dir(str) <> "" Then
(str).Select '插入圖片并選擇
With
.LockAspectRatio msoFalse '不鎖定圖片的比例
.Height mysheet1.Cells(i, 6).Height - 6 '圖片的高度設(shè)為單元格高度-6
.Width mysheet1.Cells(i, 6).Width - 6 '圖片的寬度設(shè)為單元格寬度-6
.Top mysheet1.Cells(i, 6).Top 3 '圖片的位置為E列對應(yīng)單元格到頂部的距離 3
.Left mysheet1.Cells(i, 6).Left 3 '圖片的位置為E列對應(yīng)單元格到左側(cè)的距離 3
End With
Exit For '導(dǎo)入圖片后,退出For循環(huán)
Else
mysheet1.Cells(i, 6) "圖片不存在" '否則將顯示“圖片不存在”
End If
Next
Else
mysheet1.Cells(i, 6) "" '清空E列對應(yīng)單元格的內(nèi)容
End If
mysheet1.Cells(i 1, 1).Select '選擇下一單元格
End If
'恢復(fù)更新顯示
True
'恢復(fù)觸發(fā)連鎖事件
Application.EnableEvents True
End Sub
```
4. 回到Excel工作表界面,在A列的單元格中輸入內(nèi)容。
5. E列相應(yīng)的單元格將會自動插入對應(yīng)的圖片。