ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] Excel中图片的动态联动【图片随单元格内容变动而变动,支持链接原图JPG】

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2017-4-26 16:54 | 显示全部楼层 |阅读模式
本帖最后由 彩蛮蛮 于 2017-4-29 09:58 编辑

生产型企业的小伙伴知道,质量现场的图片又多又杂,而且每张图片都要高清无码,因为这很有可能成为后期质量纠纷的判定依据。

在Excel当中是可以插入图片的,但是过多的原图存储在Excel表当中,会造成表格超大,换句话说,就是超慢。

用Excel能不能实现这样的效果?

①根据单据编号,调出图库中对应的图片,按顺序排列

②这些图片要规规矩矩的放在单元格当中,不用手动排版

③这些图片在打印状态下只是个缩略图,毕竟大图会增加表格负担

④点击缩略图的时候,可以打开原图超链接

⑤以上我要自动,而且要有个总体情况的看板

附件如下: 【表姐凌祯】质量不良管理系统--demo.zip (754.14 KB, 下载次数: 2996)


GIF04.gif 支持通过点击缩略图的方式,打开原图链接。


通过图表的形式,可以制作智能看板
看板.jpg


除了VBA的方法以外,可以用【名称管理器】的方法,实现图片的联动:
类似于:我们制作员工档案时,根据员工姓名,动态呈现员工照片的效果
这是通过【名称管理器】的方法来实现的:
1.准备图库
将您的照片(证件照、产品图纸等),依次存放在一张工作表当中:
A列写上产品的编号,作为后期索引的依据
C列存储您的图片,注意设置单元格行高与列宽

2.设置名称管理器
在【公式】选项卡下--点击【名称管理器】,新建一个名为【pic】的名称。
公式如下:
=INDEX(产品图库!$C$2:$C$10,MATCH(产品任务单!$B$3,产品图库!$A$2:$A$10,0))公式解析:

①INDEX函数

返回在产品图库工作表中,C2:C10区域中的第N个值。

②MATCH函数

根据产品任务单B3的值,匹配出在产品图库工作表中A列A2:A10的位置,也就是N值。


例如:B3单元格的值是【CP001】,在产品图库工作表A列A2:A10的位置是排在第1位,也就是说N=1.

然后名称管理器pic,返回的值是C列C2:C10中排列第N=1位的图片是路飞这个图片所存放的区域C2,。


3.插入图片

点击【插入】选项卡下--【图片】,任意插入一张图片

此时图片还只是您插入的默认图片样式

选中图片后,在编辑栏输入【=pic】,即将图片的引用源,修改为名称管理器中pic所引用的数据源,即目标图片。



此外,还可以使用插入批注的方式来关联图片:

选中单元格后,单击鼠标右键,点【插入批注】;

用鼠标点击批注边框,即可进入批注设计状态,此时,单击鼠标右键,点【设置批注格式】;

在弹出的【设置批注格式】对话框中,选择【颜色与线条】页签;

在【填充】--【颜色】下,选择【填充效果】;

点击【图片】页签,选择您的图片后,依次确定。

最终实现,将图片填充到批注中的效果,并且只有在鼠标选中单元格时,才随批注一同出现。

GIF03.gif








评分

9

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-4-26 16:57 | 显示全部楼层
VBA部分的代码:

Option Explicit
Sub ling()
'插入图片并链接到原图并根据插入的单元格自动变更大小居中
On Error Resume Next     '忽略错误继续执行VBA代码,避免出现错误消息
'***************************删除图片
    Dim tp As Shape
    For Each tp In ActiveSheet.Shapes
        If tp.Type = 11 Then tp.Delete
    Next
'*****************************
Application.ScreenUpdating = False
Dim i As Integer
For i = 1 To 7
    Sheet2.Cells(11, i).Select
Dim W, H As String
    W = ActiveCell.Width
    H = ActiveCell.Height
Dim lj As String
    lj = ThisWorkbook.Path & "\图片"
Dim idno As String
    idno = Sheet2.Range("G5").Value
Dim Filename As Variant
    Filename = lj & "\" & idno & "-" & i & ".jpg"
    ActiveSheet.Pictures.Insert(Filename).Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection.ShapeRange.Item(1), Address:=Filename
Dim W1, H1 As String
    W1 = Selection.ShapeRange.Width
    H1 = Selection.ShapeRange.Height
        Selection.ShapeRange.LockAspectRatio = msoTrue
        Select Case W / H
        Case Is >= W1 / H1
             Selection.ShapeRange.Height = H
             Selection.ShapeRange.IncrementLeft (W - H * W1 / H1) / 2
        Case Is < W1 / H1
             Selection.ShapeRange.Width = W
             Selection.ShapeRange.IncrementTop (H - W * H1 / W1) / 2
        End Select
    With Selection                                                                              '定义图片大小位置随单元格变化而变化
            .Placement = xlMoveAndSize
    End With
Next i
Application.ScreenUpdating = True
End Sub

通过上述代码,可以将图片以缩略图的形式插入到单元格当中,并自动调整图片大小,对齐到边界位置。

TA的精华主题

TA的得分主题

发表于 2017-5-24 13:08 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-5-24 13:21 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-5-25 00:39 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-9-4 21:38 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
有用,学习了
备用

TA的精华主题

TA的得分主题

发表于 2018-9-5 14:11 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-9-9 20:43 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
标记学习。謝谢分享!

TA的精华主题

TA的得分主题

发表于 2018-9-20 15:50 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-9-20 15:54 | 显示全部楼层
楼主打开怎么是乱码 方便+微信了解下吗
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-4 01:28 , Processed in 0.059270 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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