Excel:vba实现批量插入图片批注

ops/2024/12/12 5:17:41/


实现的效果:

实现的代码如下:

Sub InsertImageNamesAndPictures()Dim PicPath As StringDim PicName As StringDim PicFullPath As StringDim RowNum As IntegerDim Name As StringDim Comment As CommentDim folder As FileDialog '定义文件选择对话框' 清空单元格中的内容和图片,防止有脏数据Cells.ClearFor Each Pic In ActiveSheet.PicturesPic.DeleteNext Pic'忽略出现的错误,继续执行后面的代码,假如这个图片不存在或者有所损坏,会继续执行下个图片的插入On Error Resume Next' 设置你的图片文件夹路径(两种获取文件路径的方法)'PicPath = "C:\Users\HUAWEI\Pictures\Screenshots\"'上面的是直接写出文件路径,下面的是动态的选择选择路径'set folder创建并设置一个文件夹选择对话框Set folder = Application.FileDialog(msoFileDialogFolderPicker)'这里等于-1是用户选择并点击“确定”了文件夹,如果用户点击取消没有选择文件夹,就会返回0If folder.Show = -1 Then'folder.SelectedItems(1)返回了文件夹的路径,只不过最后没有\。PicPath是图片路径,最后加上\PicPath = folder.SelectedItems(1) & "\"ElseMsgBox "未选择文件夹,程序结束"Exit SubEnd If' 初始化行号RowNum = 1' 获取文件夹中的第一个文件名PicName = Dir(PicPath & "*.*")' 遍历所有图片文件Do While PicName <> ""' 去掉文件扩展名Name = Left(PicName, InStrRev(PicName, ".") - 1)' 将文件名插入到 A 列Cells(RowNum, 1).value = Name' 拼接完整路径PicFullPath = PicPath & PicName' 在 A 列单元格添加批注Set Comment = Cells(RowNum, 1).AddCommentComment.Text Text:=" "  ' 必须有一些文本' 插入图片到批注中With Comment.Shape.Fill.UserPicture PicFullPath  ' 设置图片作为批注的背景.Width = 50  ' 设置图片宽度.Height = 50 ' 设置图片高度End With' 设置行高(可以根据需要调整)Rows(RowNum).RowHeight = 50' 移动到下一行RowNum = RowNum + 1' 获取下一个文件名PicName = DirLoop
End Sub

实现删除批注:




 


http://www.ppmy.cn/ops/130900.html

相关文章

JavaScript 进阶 - 第4天 (黑马笔记)

JavaScript 进阶 - 第4天 目录 JavaScript 进阶 - 第4天 深浅拷贝 浅拷贝 深拷贝 递归实现深拷贝 js库lodash里面cloneDeep内部实现了深拷贝 JSON序列化 异常处理 throw try ... catch debugger 处理this 普通函数 箭头函数 改变this指向 call apply bind …

BFH的原理及用法

“Block Finalization Hash”&#xff08;区块最终哈希值&#xff0c;BFH&#xff09;是区块链系统中确保数据完整性和不可篡改性的重要机制。它在区块链系统的区块打包、验证和确认流程中扮演着至关重要的角色。以下是BFH的原理及用法的详细解释&#xff1a; 1. BFH的原理 在…

爬虫设计思路

目录 设计思路1. 功能模块2. 技术栈3. 架构设计 实现步骤其他考虑 设计一个爬虫需要考虑多种网站结构和数据类型的适应性。以下是一个爬虫的设计思路&#xff0c;包括功能模块、架构和实现步骤&#xff1a; 设计思路 1. 功能模块 配置模块&#xff1a; 支持用户输入目标URL、数…

技术债务如何影响新功能开发的效率

累积的技术债务常常对新功能的开发造成显著影响。技术债务的增加、项目进度的延误、开发效率的降低是常见的问题。技术债务指的是在开发过程中采取的便捷但不理想的解决方案&#xff0c;虽然短期内可以加快交付速度&#xff0c;但长期来看&#xff0c;这种做法会导致代码质量下…

Java入门10——封装(private)

小伙伴们大家好哇&#xff01;今天我们要学习封装~ 话不多说&#xff0c;开始今天的正题~ 1.为什么要封装 这个其实是因为当我们在写一个类的时候&#xff0c;这个类里面的东西你不想让人修改&#xff0c;这个时候&#xff0c;就提到了封装这个属性 2.通过关键字private实现…

如何在社媒平台上使用代理IP来保护帐号安全

社媒平台如Facebook、Twitter、Instagram等&#xff0c;不仅是用户分享生活与信息的重要平台&#xff0c;也是各类网络攻击的目标。利用代理IP可以帮助使用者保护帐号安全&#xff0c;防止个人信息外泄和帐号被盗用的风险。 一、为什么需要使用代理IP保护社媒帐号&#xff1f;…

iOS 18.2 可让欧盟用户删除App Store、Safari、信息、相机和照片应用

升级到 iOS 18.2 之后&#xff0c;欧盟的 iPhone 用户可以完全删除一些核心应用程序&#xff0c;包括 App Store、Safari、信息、相机和 Photos 。苹果在 8 月份表示&#xff0c;计划对其在欧盟的数字市场法案合规性进行更多修改&#xff0c;其中一项更新包括欧盟用户删除系统应…

SpringBoot环境下的学生请假管理平台开发

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…