把图片文件读成字符串_快速、准确地在单元格中插入图片,VBA带你完善数据图 资料...

大家好,我们今日继续讲解VBA代码解决方案的第101讲内容:工作表中自动插入图片

在工作中经常需要在工作表中插入大量图片,比如在工作表中需要,在A列我们录入名称在B列插入保存在同一目录中的相应的图片,如果使用手工插入不仅非常繁琐且极易出错,而使用VBA代码可以很好的完成操作。看到这里是否大家想到了单位的考勤系统呢?是的,这里的原版就是为了解决考勤系统来写的。

如何在EXCEL的单元格中插入图片呢?这就要用到Pictures.Insert(FilPath)的命令了,其中FilPath为要插入图片的路径。我们看下面的实测代码:

Sub MynzinsertPic()

Dim i As Integer

Dim FilPath As String

Dim rng As Range

Dim ns As String

With Sheets("Sheet14")

For i = 2 To .Range("a65536").End(xlUp).Row

FilPath = ThisWorkbook.Path & "" & .Cells(i, 1).Text & ".jpg"

If Dir(FilPath) <> "" Then

.Pictures.Insert(FilPath).Select

Set rng = .Cells(i, 2)

With Selection

.Top = rng.Top + 1

.Left = rng.Left + 1

.Width = rng.Width - 1

.Height = rng.Height - 1

End With

Else

ns = ns & Chr(10) & .Cells(i, 1).Text

End If

Next

.Cells(3, 1).Select

End With

If ns <> "" Then

MsgBox ns & Chr(10) & "没有相应的照片,请确认!"

End If

End Sub

代码截图:

597fe42fac09f86a748852309bf5ff8b.png

代码解析:MynzinsertPic过程使用Insert方法在工作表中插入图片。

第7行代码开始For...Next循环,循环的终值由工作表中A列单元格的行数所决定。

第8行代码字符串变量FilPath保存A列名称单元格所对应的图片文件的路径和文件名,本例中图片文件的文件名应和A列中的名称一致。

第9行到第11行代码使用Dir函数在同一文件夹中查找与A列单元格中的名称相对应的图片文件,如果对应的图片文件存在则使用Insert方法将图片插入到工作表中,并将B列的单元格赋给变量rng。

第12行到第17行代码,当图片片插入到工作表时其实是插入到活动单元格的,此时需设置图片的Top属性和Left属性将图片移动到B列所对应的单元格中,并设置其Width属性和Height属性使其适应所在单元格的大小。

第18、19行代码如果在同一文件夹中没有与A列单元格对应的图片文件,则使用字符串变量ns保存没有图片文件的名称。

第24行到第26行代码如果字符串变量ns不等于空白说明文件夹中缺少图片文件,使用消息框提示。

运行截图:

29cdd44ee53042cebb5b4f5d50392c46.png

运行后截图:

8dcab0cc5d0ad453baad96765871329a.png
5a0c9d148935a49191ccd3a182d8c3ce.png

今日内容回向:

1 如何往工作表的单元格中插入图片呢?

2 如果原单元格中有图片,代码该如何完善呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值