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


实现的效果:

实现的代码如下:

Sub InsertImageNamesAndPictures()
    Dim PicPath As String
    Dim PicName As String
    Dim PicFullPath As String
    Dim RowNum As Integer
    Dim Name As String
    Dim Comment As Comment
    Dim folder As FileDialog '定义文件选择对话框
    
    ' 清空单元格中的内容和图片,防止有脏数据
    Cells.Clear
    For Each Pic In ActiveSheet.Pictures
        Pic.Delete
    Next Pic
    
    '忽略出现的错误,继续执行后面的代码,假如这个图片不存在或者有所损坏,会继续执行下个图片的插入
    On Error Resume Next

    ' 设置你的图片文件夹路径(两种获取文件路径的方法)
    'PicPath = "C:\Users\HUAWEI\Pictures\Screenshots\"
    
    '上面的是直接写出文件路径,下面的是动态的选择选择路径
    'set folder创建并设置一个文件夹选择对话框
    Set folder = Application.FileDialog(msoFileDialogFolderPicker)
    '这里等于-1是用户选择并点击“确定”了文件夹,如果用户点击取消没有选择文件夹,就会返回0
    If folder.Show = -1 Then
        'folder.SelectedItems(1)返回了文件夹的路径,只不过最后没有\。PicPath是图片路径,最后加上\
        PicPath = folder.SelectedItems(1) & "\"
    Else
        MsgBox "未选择文件夹,程序结束"
        Exit Sub
    End 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).AddComment
        Comment.Text Text:=" "  ' 必须有一些文本

        ' 插入图片到批注中
        With Comment.Shape
            .Fill.UserPicture PicFullPath  ' 设置图片作为批注的背景
            .Width = 50  ' 设置图片宽度
            .Height = 50 ' 设置图片高度
        End With

        ' 设置行高(可以根据需要调整)
        Rows(RowNum).RowHeight = 50

        ' 移动到下一行
        RowNum = RowNum + 1

        ' 获取下一个文件名
        PicName = Dir
    Loop
End Sub

实现删除批注:




 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/907545.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++(类和对象-友元)

友元的作用 作用&#xff1a; 在C中&#xff0c;友元&#xff08;friend&#xff09;是一种特殊的类成员&#xff0c;它可以让一个函数或者类访问其他类的私有&#xff08;private&#xff09;和保护&#xff08;protected&#xff09;成员。 注意&#xff1a; 友元的使用应该谨…

ssm044基于java和mysql的多角色学生管理系统+jsp(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 题目&#xff1a;学生管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本学生管理系统就是在这…

猜字谜 华为OD

源码 Java import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test;import java.util.ArrayList; import java.util.List; import java.util.TreeSet;public class GuessWord {public Input input;BeforeEachpublic void init() {input new Input("…

C++队列

好久没有发博客了&#xff0c;欢迎阅读&#xff1a;C队列。 1.队列的介绍 队列&#xff08;queue&#xff09;是一种先进先出的、操作受限的线性表。 数据结构是&#xff1a;先进入队列的先出去&#xff0c;后进入队列的后出去。 必须从队尾插入新元素&#xff0c;队列中的…

【ArcGISPro】制作简单的ArcGISPro-AI助手

【python】AI Navigator的使用及搭建本机大模型_anaconda ai navigator-CSDN博客 【Python】AI Navigator对话流式输出_ai大模型流式输出效果(打字效果) python-CSDN博客 【C#】调用本机AI大模型流式返回_怎么实现调用本地大模型时实现流式输出-CSDN博客 【ArcGISPro】宣布推…

小白从零开始配置pytorch环境

一、下载ANACONDA 官方网址Anaconda Installers and Packages 笔者选择的是Anaconda3-5.3.0-Windows-x86_64.exe版本。全程安装可以手机开热点&#xff0c;会快一点。 二、查看电脑是否有显卡 1、打开任务管理器 2、查看电脑CUBA版本&#xff0c;如上篇文章所提到查看CUDA-V…

Java设计模式之责任链模式

1、责任链模式的定义&#xff1a; 责任链模式(Iterator Pattern)是一种行为型设计模式&#xff0c;使多个对象都有机会处理同一个请求&#xff0c;将这些对象连成一条链&#xff0c;并沿着这条链传递该请求&#xff0c;直到有一个对象处理它为止。 2、责任链模式的角色&#x…

web安全测试渗透案例知识点总结(下)——小白入狱

目录 [TOC](目录)一、更多详细的实际案例教程案例1&#xff1a;文件上传漏洞利用案例2&#xff1a;目录遍历&#xff08;Path Traversal&#xff09;漏洞检测案例3&#xff1a;暴力破解登录密码案例4&#xff1a;命令注入漏洞案例5&#xff1a;身份认证绕过&#xff08;Passwor…

.NET 8 中 Entity Framework Core 的使用

本文代码&#xff1a;https://download.csdn.net/download/hefeng_aspnet/89935738 概述 Entity Framework Core (EF Core) 已成为 .NET 开发中数据访问的基石工具&#xff0c;为开发人员提供了强大而多功能的解决方案。随着 .NET 8 和 C# 10 中引入的改进&#xff0c;开发人…

后端java——如何为你的网页设置一个验证码

本文通过HUTOOL实现&#xff1a;Hutool参考文档Hutool&#xff0c;Java工具集https://hutool.cn/docs/#/ 1、工具的准备 如果我们通过hutool来实现这个功能&#xff0c;我们需要提前安装hutool的jar包。 下载地址&#xff1a;Central Repository: cn/hutool/hutool-all/5.8.…

Java面试经典 150 题.P189. 轮转数组(006)

本题来自&#xff1a;力扣-面试经典 150 题 面试经典 150 题 - 学习计划 - 力扣&#xff08;LeetCode&#xff09;全球极客挚爱的技术成长平台https://leetcode.cn/studyplan/top-interview-150/ 题解&#xff1a; class Solution {public void rotate(int[] nums, int k) {…

Cesium基础-(Entity)-(ellipsoid)

里边包含Vue、React框架代码详细步骤、以及代码详细解释 7、ellipsoid 球体与椭球体 Ellipsoid(椭球体)是 Cesium 中用来表示地球或其他天体形状的几何对象。在三维空间中,椭球体是一个被拉伸或压缩的球体,它由三个半径定义:沿着 x、y 和 z 轴的半径。这些半径确定了椭球体…

nvm详解

本文借鉴转载于 nvm文档手册 文章目录 1.nvm是什么&#xff1f;2.nvm安装2.1 window上安装下载链接安装步骤 2.2 Mac上安装使用homebrew 安装 nvm 3.nvm使用指令 1.nvm是什么&#xff1f; nvm&#xff08;Node Version Manager&#xff09;是一个用于管理和切换不同版本 Node.…

【辽宁】《辽宁省省级政务信息化建设项目预算支出标准规定(试行)》(辽财预〔2021〕54号)-省市费用标准解读系列04

《辽宁省省级政务信息化建设项目预算支出标准规定&#xff08;试行&#xff09;》&#xff08;辽财预〔2021〕54号&#xff09;是由辽宁省财政厅和辽宁省信息中心于2021年发布应用的信息化建设项目预算支出标准。我司基于专业第三方信息化项目造价机构角度&#xff0c;从标准创…

基于vue3和elementPlus的el-tree组件,实现树结构穿梭框,支持数据回显和懒加载

一、功能 功能描述 数据双向穿梭&#xff1a;支持从左侧向右侧转移数据&#xff0c;以及从右侧向左侧转移数据。懒加载支持&#xff1a;支持懒加载数据&#xff0c;适用于大数据量的情况。多种展示形式&#xff1a;右侧列表支持以树形结构或列表形式展示。全选与反选&#xf…

Python数据分析案例61——信贷风控评分卡模型(A卡)(scorecardpy 全面解析)

案例背景 虽然在效果上&#xff0c;传统的逻辑回归模型通常不如现代的机器学习模型&#xff0c;但在风控领域&#xff0c;解释性至关重要。逻辑回归的解释性是这些“黑箱”模型所无法比拟的&#xff0c;因此&#xff0c;研究传统的评分卡模型依然是有意义的。 传统的评分卡模型…

Canvas 教程(一)

目录 一、初体验 二、通过js的方式创建canvas 三、为什么推荐属性的方式设置canvas的宽高&#xff1f; 四、常见画笔API 4.1 画直线 &#x1f536; 步骤 &#x1fae2; 小练习 4.2 线条的样式 4.2.1 线条的宽度设置 &#x1f536; API 4.2.2 线条的颜色设置 &#…

[CISCN 2019华北]PWN1-好久不见7

Partial RELRO 表示部分 RELRO 保护已启用。在这种情况下&#xff0c;只有某些部分&#xff08;如 GOT 中的只读部分&#xff09;是只读的。 NX enabled 表示这个二进制文件启用了 NX 保护&#xff0c;数据段是不可执行的。这可以防止某些类型的代码注入攻击。 这里是ida识别…

Leetcode 64. 最小路径和 动态规划+空间优化

原题链接&#xff1a;Leetcode 64. 最小路径和 二维数据 class Solution { public:int minPathSum(vector<vector<int>>& grid) {int m grid.size();int n grid[0].size();int dp[m][n];dp[0][0] grid[0][0];for (int j 1; j < n; j)dp[0][j] dp[0][…

教你一个免费把PDF产品宣传册转化为翻页电子产品宣传册的方法

在这个数字化时代&#xff0c;电子宣传册已经成为企业推广产品的重要手段。相比于传统的纸质宣传册&#xff0c;电子宣传册具有更高的互动性和传播效率。那么&#xff0c;如何将现有的PDF产品宣传册转化为具有翻页效果的电子宣传册呢&#xff1f;本文将为您详细介绍一种免费的方…