Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2323|回复: 5

[已解决]请教,自动插入图片的问题。

[复制链接]
发表于 2013-3-1 22:49 | 显示全部楼层 |阅读模式
在第二列输入对应的图片的文件名后,图片会出现在第三列里。
但如果重复修改第二列的文件名,第三列中的图片会一张张地覆盖上去。我希望第三列的图片能自动替换。

图片自动链接问题.rar (107.61 KB, 下载次数: 48)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-3-1 22:55 | 显示全部楼层
提供个笨方法,遍历图片的TOP,如果与你所在的单元格的TOP相同,就删除,然后退出循环。
再添加新图片。
回复

使用道具 举报

发表于 2013-3-1 22:58 | 显示全部楼层
  1.     Dim pic
  2.     For Each pic In ActiveSheet.Shapes
  3.         If pic.Top = Target.Top Then
  4.             pic.delelte
  5.             Exit For
  6.         End If
  7.     Next
复制代码
回复

使用道具 举报

发表于 2013-3-1 23:00 | 显示全部楼层
  1. Private Sub Worksheet_Change(ByVal Target As Range)

  2.     On Error Resume Next
  3.     Dim Path As String, pic As Shape

  4.     If Target.Count = 1 And Target <> "" And Target.Column = 2 Then
  5.         Path = "D:\Backup\我的文档\My Pictures" & Target & ".JPG"
  6.         For Each pic In ActiveSheet.Shapes
  7.             If pic.Top = Target.Top Then
  8.                 ActiveSheet.Shapes(pic.Name).Delete
  9.                 Exit For
  10.             End If
  11.         Next
  12.         ActiveSheet.Shapes.AddPicture Path, False, True, Target.Offset(0, 1).Left, Target.Offset(0, 1).Top, Target.Offset(0, 1).Width, Target.Offset(0, 1).Height
  13.     End If
  14. End Sub
复制代码
回复

使用道具 举报

发表于 2013-3-1 23:02 | 显示全部楼层    本楼为最佳答案   
  1. Private Sub Worksheet_Change(ByVal Target As Range)

  2.     On Error Resume Next
  3.     Dim Path As String, pic As Shape

  4.     If Target.Count = 1 And Target <> "" And Target.Column = 2 Then
  5.         Path = "D:\Backup\我的文档\My Pictures" & Target & ".JPG"
  6.         For Each pic In ActiveSheet.Shapes
  7.             If pic.Top = Target.Top Then
  8.                 pic.Delete
  9.                 Exit For
  10.             End If
  11.         Next
  12.         ActiveSheet.Shapes.AddPicture Path, False, True, Target.Offset(0, 1).Left, Target.Offset(0, 1).Top, Target.Offset(0, 1).Width, Target.Offset(0, 1).Height
  13.     End If

  14. End Sub
复制代码
直接用Shape的delete方法更好。
回复

使用道具 举报

发表于 2013-3-1 23:04 | 显示全部楼层
测试了,我这没图片,原来的图片给删除了。
楼主给测试下,不知道需要屏蔽事件的再次触发否。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-3-29 06:09 , Processed in 0.889209 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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