领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

Excel快速匹配图片(如何把excel中的图片匹配到相应的格子中)

nixiaole 2025-03-25 16:05:50 知识剖析 10 ℃

日常工作中有时候会遇到需要将文件夹中的图片批量匹配插入到Excel表格中,这样方便看到产品图片或者重要截图,这样信息更丰富,便于后续管理。

下面介绍两种方法,分别是公式法匹配图片用VBA插入图片,需要使用的软件包含Excel和WPS。

公用操作(两种方法都要的操作)

第一步、先获取图片名称,使用Excel打开表格,在【数据】-【新建查询】-【从文件】-【从文件夹】,选择指定的图片文件夹,需要注意图片都需要在同一个文件夹

导入图片名称

图片在同一个文件夹

选择图片文件夹

选择图片文件夹后,点击确定,进入查询编辑器页面,Name列对应就是图片文件的名称,点击【关闭并上载】就可以保存当前页面到表格中。

查询编辑器获取图片信息

保存后Excel会自动生成sheet表格

方法一、公式法匹配图片

可以将这个表格复制粘贴为数值到另外一个sheet表,在G列输入

="

F2&A2&" height=80 width=80>
"

可以提前将表格中单元格行高调成60,再填充公式,避免后期调整图片大小。

其中F2&A2为图片在本地的位置,可以视情况调整位置。height(高度),width(宽度)

将G列复制到记事本txt文本文档,再将记事本中的代码贴回表格中存放图片的位置


在G列填写公式

复制txt文本中的地址到Excel

最后的呈现效果如下方图片效果。

最后一步如果使用WPS打开操作后,可以F5定位对象后,选择将全部【图片嵌入单元格】。

WPS嵌入的图片双击后有放大图片的效果,这一点Excel没有这个功能。

方法二、VBA插入图片,在Excel中运行

在使用VBA前可以在获取图片信息后,提取文件名称(不含文件格式)

=LEFT(B2,LEN(B2)-4),根据Name提取文件名

在A列旁插入空白列用来放图片

选中A列中图片名称区域,复制VBA到代码框中,可以通过右键sheet表中【查看代码】或者按Alt+F11键访问VBA编辑页面。

点击左上角的绿色运行按钮,然后选中图片所在文件夹即可。只是这里图片已经是嵌入的模式,图片大小调整为一致,建议如果图片都是统一大小可以使用这种方法。

运行代码后有弹框选中图片文件夹

Sub AAA()  
    Dim T As String  
    Dim FD As FileDialog  
    Dim MR As Range  
    Dim fso As Object  
    Dim picPath As String  
    Dim ML As Double, MT As Double, MW As Double, MH As Double  
  
    Set FD = Application.FileDialog(msoFileDialogFolderPicker)  
    If FD.Show = -1 Then  
        T = FD.SelectedItems(1)  
    Else  
        Exit Sub  
    End If  
  
    Set fso = CreateObject("Scripting.FileSystemObject")  
  
    Application.ScreenUpdating = False ' 关闭屏幕更新以提高性能  
  
    For Each MR In Selection  
        If Not IsEmpty(MR) Then  
            ' 构建可能的图片路径,检查.jpg和.png  
            picPath = T & "\" & MR.Value & ".jpg"  
            If fso.FileExists(picPath) Then  
                ' 如果找到.jpg,则使用它  
                GoTo FoundImage  
            Else  
                ' 如果没有找到.jpg,则尝试.png  
                picPath = T & "\" & MR.Value & ".png"  
                If fso.FileExists(picPath) Then  
                    ' 如果找到.png,则继续  
                Else  
                    ' 如果两种都没有找到,则跳过  
                    GoTo NextCell  
                End If  
            End If  
  
FoundImage:  
            ' 设置矩形的位置和大小  
            ML = MR.Left + MR.Width + 2 ' 稍微向右偏移一点  
            MT = MR.Top  
            MW = 100 ' 假设宽度为100,可以根据需要调整  
            MH = MR.RowHeight ' 假设高度与行高相同  
  
            ' 检查是否超出工作表边界  
            If ML + MW > ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column * ActiveSheet.Columns.Width Then  
                MsgBox "图片无法放置,因为它将超出工作表边界。", vbExclamation  
                Exit Sub  
            End If  
  
            ' 创建矩形并填充图片  
            With ActiveSheet.Shapes.AddShape(msoShapeRectangle, ML, MT, MW, MH)  
                .Fill.UserPicture picPath  
            End With  
  
NextCell:  
        End If  
    Next MR  
  
    Application.ScreenUpdating = True ' 恢复屏幕更新  
End Sub

最后呈现效果如下

总结

目前测试如果对图片清晰度要求高的话使用第一种方法比较好,如果需要有图片放大效果,第一种方法的最后一步使用WPS嵌入图片使用效果更好;

第二种方法对于样式统一的图片处理方便快捷,大家可以根据需要进行操作。

#夏日生活打卡季##职场##头条首发大赛#

Tags:

最近发表
标签列表