讲师中心 微信公众号

工具推荐

视频效率加速
AniShort
AniShort

AI短剧协同制作平台

剧云
剧云

中文短剧剧本制作平台

Seko
Seko

AI短剧一键生成成片

立刻MV
立刻MV

低成本歌曲 MV、视频生成

Excel如何批量给图片命名并自动导入单元格_利用VBA宏关联文件名

云明同学_5726

云明同学_5726

发布时间:2026-01-26 09:58:02

|

940人浏览过

|

来源于php中文网

原创

可通过VBA宏实现Excel中图片按A列名称批量插入B列并关联命名:先准备路径与表结构,再用三类宏分别处理单格式、多格式匹配及反向生成清单,全程自动化。

excel如何批量给图片命名并自动导入单元格_利用vba宏关联文件名

如果您在Excel中需要将大量图片按特定规则批量命名,并自动插入到对应单元格中,同时让图片文件名与单元格内容保持关联,则可通过VBA宏实现自动化操作。以下是具体执行步骤:

一、准备图片与目标工作表结构

该方法要求所有待处理图片已统一存放于指定文件夹中,且Excel工作表中A列已预先填入期望的图片文件名(不含扩展名),B列将用于插入对应图片。宏运行时将按A列名称依次匹配同名图片并嵌入B列单元格内。

1、新建一个空白Excel工作簿,切换至“Sheet1”。

2、在A1开始向下输入期望的图片基础名称,例如:产品A、产品B、产品C。

3、确保所有图片以相同名称保存在本地固定路径下,如“D:\图片素材\”,格式统一为.jpg或.png。

4、确认Excel启用开发者选项并允许运行宏:点击“文件→选项→自定义功能区”,勾选“开发工具”;再进入“信任中心→宏设置”,选择“启用所有宏”(仅限可信环境)。

二、插入并编辑VBA宏代码

本方案通过Workbook级模块调用Shape对象插入图片,并利用Name属性绑定原始文件名,便于后续识别与管理。代码不依赖ActiveX控件,兼容Excel 2010及以上版本。

1、按Alt+F11打开VBA编辑器。

2、在左侧工程资源管理器中右键“ThisWorkbook”,选择“查看代码”。

3、粘贴以下完整代码:

Sub BatchInsertNamedPictures()

Dim ws As Worksheet, rng As Range, cell As Range

Dim picPath As String, fullName As String, shp As Shape

Set ws = ThisWorkbook.Sheets("Sheet1")

Set rng = ws.Range("A1:A" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row)

picPath = "D:\图片素材\" '请按实际路径修改

For Each cell In rng

If Not IsEmpty(cell.Value) Then

fullName = picPath & Trim(cell.Value) & ".jpg"

If Dir(fullName) "" Then

Set shp = ws.Shapes.AddPicture(fileName:=fullName, linkToFile:=msoFalse, SaveWithDocument:=msoTrue, Left:=cell.Offset(0, 1).Left + 5, Top:=cell.Offset(0, 1).Top + 5, Width:=-1, Height:=-1)

shp.Name = "IMG_" & Trim(cell.Value)

shp.ScaleHeight 0.8, msoTrue

shp.ScaleWidth 0.8, msoTrue

End If

End If

Next cell

End Sub

三、适配多种图片格式的增强版宏

当图片格式不统一(含.jpg、.png、.bmp等)时,原宏需逐个判断扩展名是否存在。本方案采用循环检测机制,在同一路径下尝试多个后缀,提升容错率与适用性。

1、在VBA编辑器中新建模块:右键“Normal”或当前工程→插入→模块。

2、在新模块中粘贴以下代码:

Sub InsertPicByMultiExt()

Dim extArr As Variant, i As Long, found As Boolean

extArr = Array(".jpg", ".jpeg", ".png", ".bmp", ".gif")

Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")

购物小票 OCR 导出 Excel
购物小票 OCR 导出 Excel

从超市购物小票图片中提取商品明细,并按指定表头生成 Excel 表格。

下载

Dim lastRow As Long: lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

Dim picFolder As String: picFolder = "D:\图片素材\" '请按实际路径修改

Dim cell As Range

For Each cell In ws.Range("A1:A" & lastRow)

If Not IsEmpty(cell) Then

found = False

For i = LBound(extArr) To UBound(extArr)

If Dir(picFolder & Trim(cell.Value) & extArr(i)) "" Then

ws.Shapes.AddPicture picFolder & Trim(cell.Value) & extArr(i), msoFalse, msoTrue, cell.Offset(0, 1).Left + 5, cell.Offset(0, 1).Top + 5, -1, -1

ws.Shapes(ws.Shapes.Count).Name = "IMG_" & Trim(cell.Value) & extArr(i)

found = True: Exit For

End If

Next i

If Not found Then cell.Offset(0, 1).Value = "【未找到】"

End If

Next cell

End Sub

四、通过文件系统遍历反向生成命名清单

若仅有图片文件而无预先整理的名称列表,可先读取指定文件夹内全部图片文件名,自动写入A列并去除扩展名,再执行插入操作。此方式避免人工录入错误,适用于原始素材命名规范的场景。

1、在VBA编辑器中插入新模块,粘贴以下代码:

Sub ListFilesAndInsert()

Dim fso As Object, folder As Object, file As Object

Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")

Dim picFolder As String: picFolder = "D:\图片素材\" '请按实际路径修改

Dim rowIdx As Long: rowIdx = 1

Set fso = CreateObject("Scripting.FileSystemObject")

Set folder = fso.GetFolder(picFolder)

For Each file In folder.Files

If LCase(fso.GetExtensionName(file.Name)) Like "jpg" Or LCase(fso.GetExtensionName(file.Name)) Like "png" Or LCase(fso.GetExtensionName(file.Name)) Like "bmp" Then

ws.Cells(rowIdx, 1).Value = fso.GetBaseName(file.Name)

rowIdx = rowIdx + 1

End If

Next file

Call BatchInsertNamedPictures '调用第一种插入宏

End Sub

热门AI工具

更多
Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

7559

2023.08.02

java中boolean的用法
java中boolean的用法

在Java中,boolean是一种基本数据类型,它只有两个可能的值:true和false。boolean类型经常用于条件测试,比如进行比较或者检查某个条件是否满足。想了解更多java中boolean的相关内容,可以阅读本专题下面的文章。

2150

2023.11.13

java boolean类型
java boolean类型

本专题整合了java中boolean类型相关教程,阅读专题下面的文章了解更多详细内容。

163

2025.11.30

counta和count的区别
counta和count的区别

Count函数用于计算指定范围内数字的个数,而CountA函数用于计算指定范围内非空单元格的个数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3948

2023.11.20

PHP 命令行脚本与自动化任务开发
PHP 命令行脚本与自动化任务开发

本专题系统讲解 PHP 在命令行环境(CLI)下的开发与应用,内容涵盖 PHP CLI 基础、参数解析、文件与目录操作、日志输出、异常处理,以及与 Linux 定时任务(Cron)的结合使用。通过实战示例,帮助开发者掌握使用 PHP 构建 自动化脚本、批处理工具与后台任务程序 的能力。

526

2025.12.13

Figma AI自动化智能数据填充与交互生成实战
Figma AI自动化智能数据填充与交互生成实战

告别机械重复,详细演示如何用 AI 填充业务真实数据,并自动为页面添加交互连线,将静态设计稿快速转变为动态原型。

345

2026.05.13

excel对比两列数据异同
excel对比两列数据异同

Excel作为数据的小型载体,在日常工作中经常会遇到需要核对两列数据的情况,本专题为大家提供excel对比两列数据异同相关的文章,大家可以免费体验。

6161

2023.07.25

excel重复项筛选标色
excel重复项筛选标色

excel的重复项筛选标色功能使我们能够快速找到和处理数据中的重复值。本专题为大家提供excel重复项筛选标色的相关的文章、下载、课程内容,供大家免费下载体验。

3916

2023.07.31

Go-Zero API开发使用教程
Go-Zero API开发使用教程

本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。

40

2026.11.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 45.7万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 3.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn