使用VBA自动插入图片的方法
如下表所示,当在A列的单元格中输入内容时,希望E列的相应单元格能够自动插入对应的图片。手动插入图片既繁琐又费时,下面将介绍一种使用VBA自动插入图片的方法。
步骤
1. 点击Excel工具栏中的【开发工具】选项,再点击【Visual Basic】按钮。
2. 在VBA编辑器中,双击“Sheet1”工作表。
3. 在Sheet1代码框中,输入以下VBA程序代码:
```vba
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i, arr, str, typ, shp
'忽略运行中可能出现的错误
On Error Resume Next
'关闭触发连锁事件
Application.EnableEvents False
'关闭工作表更新,提高运行速度
False
'如果改变的单元格在A1:A999且只是1个单元格,则执行以下操作
If < 1000 And 1 And 1 Then
'追踪单元格所在的行
i
'定义Sheet1工作表
Set mysheet1 ("Sheet1")
'图片格式集合
arr Array(".jpg", ".jpeg", ".png", ".bmp", ".gif", ".tif")
'扫描工作表里面的每一张图片
For Each shp In
'如果是追踪单元格对应的E列单元格里边的图片,则删除
If > mysheet1.Cells(i, 6).Top And < mysheet1.Cells(i 1, 6).Top Then
End If
Next
'如果A列改变的单元格不为空白,则执行以下操作
If mysheet1.Cells(i, 1) <> "" Then
'执行图片格式组里面的每一个尝试
For Each typ In arr
'图片路径(D盘ABCDE文件夹里边)
str "D:ABCDE" mysheet1.Cells(i, 1).Value typ
'如果图片存在,则执行以下操作
If Dir(str) <> "" Then
(str).Select '插入图片并选择
With
.LockAspectRatio msoFalse '不锁定图片的比例
.Height mysheet1.Cells(i, 6).Height - 6 '图片的高度设为单元格高度-6
.Width mysheet1.Cells(i, 6).Width - 6 '图片的宽度设为单元格宽度-6
.Top mysheet1.Cells(i, 6).Top 3 '图片的位置为E列对应单元格到顶部的距离 3
.Left mysheet1.Cells(i, 6).Left 3 '图片的位置为E列对应单元格到左侧的距离 3
End With
Exit For '导入图片后,退出For循环
Else
mysheet1.Cells(i, 6) "图片不存在" '否则将显示“图片不存在”
End If
Next
Else
mysheet1.Cells(i, 6) "" '清空E列对应单元格的内容
End If
mysheet1.Cells(i 1, 1).Select '选择下一单元格
End If
'恢复更新显示
True
'恢复触发连锁事件
Application.EnableEvents True
End Sub
```
4. 回到Excel工作表界面,在A列的单元格中输入内容。
5. E列相应的单元格将会自动插入对应的图片。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。