ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2172|回复: 14

[求助] 插入图片后的尺寸和位置,怎么调整?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-9-20 11:40 | 显示全部楼层 |阅读模式
论坛里看了一些插入图片的案例,有一个可以扩展功能。
我想插入的图片尺寸自动调整为所在单元格的尺寸
还有就是一共插入12张图,要求从第七张开始放在第5列
示例.jpg 测试.7z (727.75 KB, 下载次数: 5)
请大师出手

TA的精华主题

TA的得分主题

发表于 2020-9-20 12:00 | 显示全部楼层
让图片填充满单元格?可以去我的主题里面看看,有插入图片的主题的

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-9-20 12:33 | 显示全部楼层
3190496160 发表于 2020-9-20 12:00
让图片填充满单元格?可以去我的主题里面看看,有插入图片的主题的

好的,去看看学习一下。谢啦

TA的精华主题

TA的得分主题

发表于 2020-9-20 12:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Sub insertPic()
    Dim i As Integer
    Dim FilPath As String
    Dim rng As Range
    Dim s As String
        For Each myShape In Sheet1.Pictures
        myShape.Delete
    Next
            For i = 3 To Sheet1.Range("a65536").End(3).Row
                FilPath = ThisWorkbook.Path & "\" & Sheet1.Cells(i, 1).Text & ".jpg"
                If Dir(FilPath) <> "" Then
                    Sheet1.Pictures.Insert(FilPath).Select
                    Selection.ShapeRange.LockAspectRatio = msoFalse
                    With Selection
                        .Width = Sheet1.Range(Sheet1.Cells(i, 2).Address).Width
                        .Height = Sheet1.Range(Sheet1.Cells(i, 2).Address).Height
                         .Top = Sheet1.Range(Sheet1.Cells(i, 2).Address).Top
                         .Left = Sheet1.Range(Sheet1.Cells(i, 2).Address).Left
                     End With
                End If
            Next i
End Sub

TA的精华主题

TA的得分主题

发表于 2020-9-20 12:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
测试.rar (729.98 KB, 下载次数: 47)

TA的精华主题

TA的得分主题

发表于 2020-9-20 12:51 | 显示全部楼层
删除图片没必要用一个按钮,插入图片之前先删除原来的图片即可

TA的精华主题

TA的得分主题

发表于 2020-9-20 14:12 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
1) Sheet1.Pictures.Delete 可一次刪圖, 不須迴圈
2) 應先判斷原圖是否大于單元格的高/寬再調整, 否則圖片會失真(變放大模糊)
3) 圖片應與[上/左/下/右]保持微小距離且[置中], 不然單元格的框線會被遮掉, 印不出框


TA的精华主题

TA的得分主题

发表于 2020-9-20 14:30 | 显示全部楼层
3190496160老师的代码改的,我的笨方法就是增加一个循环

测试.rar

729.56 KB, 下载次数: 38

TA的精华主题

TA的得分主题

发表于 2020-9-20 14:35 | 显示全部楼层
Sub insertPic()
    Dim i As Integer
    Dim FilPath As String
    Dim rng As Range
    Dim s As String
        For Each myShape In Sheet1.Pictures
        myShape.Delete
    Next
            For i = 3 To Sheet1.Range("a65536").End(3).Row
                FilPath = ThisWorkbook.Path & "\" & Sheet1.Cells(i, 1).Text & ".jpg"
                If Dir(FilPath) <> "" Then
                    Sheet1.Pictures.Insert(FilPath).Select
                    Selection.ShapeRange.LockAspectRatio = msoFalse
                    With Selection
                        .Width = Sheet1.Range(Sheet1.Cells(i, 2).Address).Width - 1
                        .Height = Sheet1.Range(Sheet1.Cells(i, 2).Address).Height - 1
                         .Top = Sheet1.Range(Sheet1.Cells(i, 2).Address).Top + 1
                         .Left = Sheet1.Range(Sheet1.Cells(i, 2).Address).Left + 1
                     End With
                End If
            Next i
            For i = 3 To Sheet1.Range("d65536").End(3).Row
                FilPath = ThisWorkbook.Path & "\" & Sheet1.Cells(i, 4).Text & ".jpg"
                If Dir(FilPath) <> "" Then
                    Sheet1.Pictures.Insert(FilPath).Select
                    Selection.ShapeRange.LockAspectRatio = msoFalse
                    With Selection
                        .Width = Sheet1.Range(Sheet1.Cells(i, 5).Address).Width - 1
                        .Height = Sheet1.Range(Sheet1.Cells(i, 5).Address).Height - 1
                         .Top = Sheet1.Range(Sheet1.Cells(i, 5).Address).Top + 1
                         .Left = Sheet1.Range(Sheet1.Cells(i, 5).Address).Left + 1
                     End With
                End If
            Next i
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-9-20 16:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
aecn 发表于 2020-9-20 14:35
Sub insertPic()
    Dim i As Integer
    Dim FilPath As String

正合我意,果然第5列也能上图了,增加一个循环,我一直没有琢磨出来
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-3-29 09:29 , Processed in 0.048319 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表