Excel单元格中自适应填充多图

实例需求:在Excel插入图片时,由于图片尺寸各不相同,如果希望多个图片填充指定单元格,依靠用户手工调整,不仅费时费力,而且很难实现完全填充。如下图中的产品图册,有三个图片,如下图所示。

在这里插入图片描述

在不改变C列宽度的情况下,需要将三个图片调整为相同高度,并且填满单元格(可以修改行高)。

在这里插入图片描述

Sub Demo()
    Dim rngCell As Range, oShp As Shape
    Dim wAll As Double, r As Double, iLeft As Double
    Set rngCell = Range("C2")
    For Each oShp In Sheet1.Shapes
        oShp.LockAspectRatio = msoCTrue
        oShp.Height = 100
        wAll = wAll + oShp.Width + 1
    Next
    r = rngCell.Width / (wAll + 1)
    iLeft = rngCell.Left + 1
    For Each oShp In Sheet1.Shapes
        oShp.Height = 100 * r
        oShp.Top = rngCell.Top + 1
        oShp.Left = iLeft
        iLeft = iLeft + oShp.Width + 1
    Next
    rngCell.RowHeight = Sheet1.Shapes(1).Height + 2
End Sub

【代码解析】
第5行代码指定图片填充单元格。
第6~10行代码循环遍历工作表Sheet1中的图片。
第7行代码锁定图片的纵横比,避免调整图片尺寸导致图片变形。
第8行代码统一图片高度。
第9行代码统计图片的累计宽度,此处加一作为相邻图片之间的间隔。
第11行代码计算缩放比例。
第12行代码计算图片的水平偏移位置,第一图片的偏移量与单元格的Left属性相同,即对齐被填充单元格的左侧。此处增加偏移量为1,是为了避免图片覆盖单元格边框线。
第13~18行代码循环遍历工作表Sheet1中的图片,设置图片位置和尺寸。
第14行代码修改图片高度,由于锁定了纵横比,因此图片的宽度也会按同比例变化。
第15行代码设置图片Top属性于被填充单元格相同,即对齐被填充单元格顶部。
第16行代码调整图表位置。
第17行代码累加当前图片宽度,计算下一个图片位置。
第19行代码修改被填充单元格的高度,以适配图片高度。

Excel自动插入图片 看到网上老是有人询问Excel自动插入图片的问题,刚好自己也很需要。看了看别人给出的答案,没有比较理想的方案,做了这3个文件,相信对外贸业务员或其它经常需要在Excel中插入图片的人非常有用。 1.自动插入当前文件夹所有图片到B列并将图片名填入A列.xls 2.自动插入当前文件夹所有图片图片名制作目录快捷键ctrl+i 3.自动根据A列型号插入当前文件夹中用型号命名的jpg图片到B列.xls 注: 1.要能正常使用这些文件时,Excel中的宏的安全性级别不能为低,请放心这些宏是用来完成上述任务,并非病毒。 2.文件与图片必须在同一个文件夹. 3. Ctrl+i插入图片,Ctrl+d 删除文档所有图片. 4.图片必须是jpg文件,如果你通常是使用其它格式的图片,可以告诉我,稍作调整。 5.在发给客户和他人之前,请将Sheet1复制到新的Excel文件中,用新的文件发给他人,这样新文件中就不会含有宏代码,以免别人误认为你的文件有病毒。 6.如果插入较图片,可能导致Excel文件很大!您可以在Excel中按以下两种方式压缩图片: (1)按顺序点击菜单:文件->另存为->工具-压缩图片" (2)右键点击图片;在快捷菜单上选择显示或隐藏 '图片' 工具栏;点击 '图片' 工具栏上的 '压缩图片' 命令;选择 '应用于文档中所有图片' 后,单击确定。 Michael Ho 54mikeho*sohu.com QQ:9900060 2010年
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值