这个EXCEL表在C:\project目录下,图片文件在C:\project\pic中,比如B2单元格内容为“高一七班”,我要在A1单元格中自动插入图片,图片名为“高一七班.JPG”。B3单元格内容为“张三”,我要在A4单元格中自动插入图片,图片名为“张三.JPG”。然后在我更改B2或者B3单元格内容时, A1或者A4单元格的图片能够随着B2或者B3单元格内容的变动而变动,图片文件中的图片名均与B2或者B3单元格内容一致。请教高手!
1、首先需要打开添加图片的EXCEL表格。
2、在菜单栏依次点击”插入“、”图片“。找到存放图片文件的路径,将图片导入EXCEL表格。
3、调整图片大小和位置,使其位于固定的单元格内。但是如果我们删除行或者列时,由于不同的单元格大小不一样,需要重新调整图片大小。
4、在图片上单击鼠标右键,找到”大小和属性“按钮。
5、在属性中勾选”随单元格改变位置和大小“。
6、之后返回主界面,随便删除某一行或者某一列,可以发现图片会跟随单元格变化而自动变化。
可以用vba代码完成:
1、先编制表格:
2、在表格里编写触发宏代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim photoname As String
If Target.Row = 3 And Target.Column > 3 And Target.Column < 6 Then
On Error Resume Next '忽略错误继续执行VBA代码,避免出现错误消息
Application.ScreenUpdating = False
Application.EnableEvents = False
For Each shp In Sheets("查询表").Shapes
If shp.Type <> 8 And shp.Type <> 12 Then
shp.Delete
End If
Next
photoname = Cells(3, 4) & ".JPG"
Cells(3, "L").Select
ActiveSheet.Pictures.Insert(ActiveWorkbook.Path & "\照片\" & photoname).Select '当前文件所在目录下以单元内容为名称的.jpg图片
With Selection
ta = Range(Cells(3, "L").MergeArea.Address).Height '单元高度
tb = Range(Cells(3, "L").MergeArea.Address).Width '单元宽度
tc = .Height '图片高度
td = .Width '图片宽度
tm = Application.WorksheetFunction.Min(ta / tc, tb / td) '单元与图片之间长宽差异比例的最小值
.Top = ActiveCell.Top + 2
.Left = ActiveCell.Left + 1
.Height = .Height * tm * 0.98 '按比例调整图片宽度
.Width = .Width * tm * 0.98 '按比例调整图片高度
End With
Cells(3, 4).Select
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
3、在当前目录下建个名为”照片“的子目录,里面存有以姓名为名称的.jpg格式的照片
4、在姓名后单元输入姓名后,就能自动插入图片了
我需要根据两个单元格的内容插入两张图片
本回答被提问者和网友采纳自动适应单元格大小
追答亲,下面是测试结果和代码。
下载下面网盘的文件,打开后按“Alt+F11”打开VBA编辑窗口,双击左侧的Sheet1,选中右侧窗口中的代码,复制。
http://pan.baidu.com/s/1mgNxq20
打开你的Excel文件,按“Alt+F11”打开VBA编辑窗口,然后在左侧对应的Sheet上双击,右侧空白处粘贴代码。关闭VBA窗口。
亲,公司网络问题打不开百度云,能麻烦你把文件发我mail吗? 710400423的企鹅信箱
追答已发,请查收。
追问亲,对不起,采纳点错了。。。。。
追答泪奔……~~o(>_<)o ~~