批量将文件夹内的图片插入到与图片名称相匹配的Excel单元格中,技巧收藏!

Excel情报局
Excel职场联盟
生产挖掘分享Excel基础技能
Excel爱好者大本营
用1%的Excel基础搞定99%的职场问题
做一个超级实用的Excel公众号
Excel是门手艺玩转需要勇气
数万Excel爱好者聚集地
SUPER EXCEL MAN

前言|职场实例

前两天我们讲过了一篇Excel技巧文章(点击下方查看):
批量将图片插入到Excel中,且自动调整图片大小以适应单元格的大小!
有的小伙伴提出了:这篇文章讲到的只是将图片批量插入到Excel工作表的一列中,如果我的工作表中有这些图片的名称,那么如何将表格中名称与文件夹图片名称一一对应,将图片批量插入到对应的单元格中呢?
如下图所示:
文件夹中有3张图片,图片名称分别为“大雄”、“多啦A梦”、“小丸子”,Excel工作表的A列单元格中分别是3张图片的名称,我们如何将文件夹内的图片按照图片名称插入到Excel对应图片名称的右边B列单元格中呢?

方案|解决方法

其实呢,这个问题看似很难办到,在Excel的菜单工具栏中也找不到对应实现的按钮,但是,我们依然可以利用VBA代码的方法轻松的实现。下面小编就来带大家一起来解决一下这个问题。
我们鼠标右击工作表名称标签,点击“查看代码”命令,进入到VBA代码编辑器窗口中(也可以通过快捷键Alt+F11进入),然后将下面的一段VBA代码复制粘贴到VBA代码编辑窗口内。如下图所示:
代码如下(复制粘贴即用):
Sub InserPictureByName()Dim xFDObject As FileDialogDim xStrPath, xStrPicPath As StringDim xRgName, xRgInser, xRg, xRgI As RangeDim xFNum As IntegerSet xFDObject = Application.FileDialog(msoFileDialogFolderPicker)With xFDObject .Title = "Please select the folder:" .InitialFileName = Application.ActiveWorkbook.Path .Show .AllowMultiSelect = FalseEnd WithOn Error Resume NextxStrPath = ""xStrPath = xFDObject.SelectedItems.Item(1)If xStrPath = "" ThenExit SubEnd IfSet xRgName = Application.InputBox("Please select the cells contain the image name:", "Kutools for Excel", , , , , , 8)If xRgName Is Nothing Then MsgBox "No cells are select, exit operation! ", vbInformation, "Kutools for Excel" Exit SubEnd IfSet xRgInser = Application.InputBox("Please select the cells to output the images", "Kutools for Excel", , , , , , 8)If xRgInser Is Nothing Then MsgBox " No cells are select, exit operation.! ", vbInformation, "Kutools for Excel" Exit SubEnd IfFor xFNum = 1 To xRgName.Count Set xRg = xRgName.Item(xFNum) Set xRgI = xRgInser.Item(xFNum) xStrPicPath = xStrPath & "\" & xRg.Text & ".jpg" If Not Dir(xStrPicPath, vbDirectory) = vbNullString Then With xRgI.Parent.Pictures.Insert(xStrPicPath) .Left = xRgI.Left .Top = xRgI.Top .ShapeRange.LockAspectRatio = msoFalse .ShapeRange.Height = 60 .ShapeRange.Width = 60 End With End IfNextEnd Sub
点击VBA代码编辑器窗口上方的【运行】-【运行子过程/用户窗体】命令,弹出一个文件选择界面,我们找到图片存放的文件夹的具体位置,然后点击“确定”按钮,这时候会弹出一个“选择工作表中图片名称的单元格区域”的一个选择框,如下图所示:

在“选择工作表中图片名称的单元格区域”的选择框中,我们在工作表中框选单元格区域:A2:A4,然后点击“确定”按钮,又继续弹出一个“选择插入图片存放在表格中位置”的对话框,如下图所示:

在“选择插入图片存放在表格中位置”的对话框中,我们在工作表中框选图片存放的单元格区域:B2:B4,最后点击“确定”按钮后,我们发现所有文件夹内的图片就根据图片名称批量插入到了Excel表格中了,如下图所示:

注意|代码灵活修改的地方

①我们可以通过修改下面两句代码中的数字部分,来调节插入图片的长与宽的长度。

.ShapeRange.Height = 60

.ShapeRange.Width = 60

②下面一句代码中的“.jpg”即调取的文件夹内的图片的格式,我们必须使这句代码中的图片格式后缀与文件夹内的图片格式后缀保持一致。
xStrPicPath = xStrPath & "\" & xRg.Text & ".jpg"
阅读完文章之后,希望小伙伴们在文章底部帮助小编[点赞]+点亮[在看];如果觉得内容有价值欢迎[分享]给你的同事朋友;小编也和大家一样,正在不断的学习与积累中,坚持持续分享的道路上很艰辛,需要有你们的鼓励与支持!别逃避问题,否则它只会越积越多;每天进步一点点,你就胜过了大多数人。
(0)

相关推荐