Excel:vba实现批量插入图片


实现的效果:

实现的代码:

Sub InsertImageNamesAndPictures()
    Dim PicPath As String
    Dim PicName As String
    Dim PicFullPath As String
    Dim RowNum As Integer
    Dim Pic As Object
    Dim Name As String
    
    ' 防止表格里面有脏数据
    Cells.Clear
    ' 遍历工作表中的每个图片并删除,防止表中有别的图片,造成叠加
    For Each Pic In ActiveSheet.Pictures
        Pic.Delete
    Next Pic
    
    ' 修改为你的图片文件夹路径
    PicPath = "C:\Users\HUAWEI\Pictures\Screenshots\"
    
    ' 初始化行号
    RowNum = 1
    
    ' 获取文件夹中的第一个文件名
    PicName = Dir(PicPath & "*.*")
    
    ' 遍历所有图片文件
    Do While PicName <> ""
        '去掉文件扩展名(即去掉文件后缀)
        'Name = Left(PicName, InStrRev(PicName, ".") - 1)
        ' 将图片文件名插入到A列
        Cells(RowNum, 1).value = PicName
        
        ' 拼接完整路径
        PicFullPath = PicPath & PicName
        
        ' 插入图片到B列
        Set Pic = ActiveSheet.Pictures.Insert(PicFullPath)
        
        ' 设置图片位置和大小
        With Pic
            .ShapeRange.LockAspectRatio = msoFalse
            .Top = Cells(RowNum, 2).Top
            .Left = Cells(RowNum, 2).Left
            .Width = 50  ' 可调整宽度
            .Height = 50 ' 可调整高度
        End With
        
        ' 设置行高
        Rows(RowNum).RowHeight = Pic.Height
        
        ' 移动到下一行
        RowNum = RowNum + 1
        
        ' 获取下一个文件名
        PicName = Dir
    Loop
End Sub

如果将下面这句话取消注释,其余的代码不变实现的效果:



删除插入的图片:

一、选择“定位”

二、选择“对象”

三、选择对象即定位到图片

四、按电脑上的"del"按键(delete)就删除成功了

对上面的操作进行"宏录制"



 

上一篇:jmeter基础03_汉化jmeter界面- 永久设置中文


下一篇:Linux Docker 部署 Elasticsearch (ES) 集群详解教程