vba单元格图片上传到mysql_快速、准确地在单元格中插入图片,VBA带你完善数据图 资料...

本文介绍如何使用VBA在Excel工作表中自动插入图片,适用于需要在特定单元格批量插入图片的情况,如考勤系统的数据完善。通过VBA的Pictures.Insert方法,结合For循环和Dir函数,实现图片与单元格数据对应。代码示例详细解释了如何定位图片、调整图片尺寸以及处理缺失图片的提示。
摘要由CSDN通过智能技术生成

大家好,我们今日继续讲解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

代码截图:

157983697_1_20190403094250315

代码解析: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不等于空白说明文件夹中缺少图片文件,使用消息框提示。

运行截图:

157983697_2_20190403094250409

运行后截图:

157983697_3_20190403094250565

157983697_4_20190403094250706

今日内容回向:

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值