输入相应名称,自动显示对应的图片

z315559822 2016-01-26 01:41:45
论坛里面搜索了如下的代码,需要修改为从两个子文件夹下面取回图片,放置等高(行号)的位置。期待帮助!

'需求:修改下面的代码,根据 C7、G12单元格的不同选择,从同路径下面两个子文件夹里面,提取同名图片,放置在 25行以下的固定位置,大小跟随存放的单元格大小相同。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Set rng = Union([C7], [G12])
If Intersect(rng, Target) Is Nothing Then Exit Sub
Dim path$, rg As Range, shp As Shape, ad$
Application.ScreenUpdating = False
Set rg = Target.Offset(18, 0) '【问题1】 C7 和 G12 偏移到25行的差值是两个数字,这里需要修改代码
ad = rg.Address
path = ThisWorkbook.path & "\产品图片\" '【问题2】 图片放置在2个路径的文件夹里面,怎么样修改这里的代码
path = ThisWorkbook.path & "\开启方向\"
For Each shp In ActiveSheet.Shapes
' If shp.TopLeftCell.Address = ad Then shp.Delete 【问题3】 当C7 和 G12 选择不同的数值时,怎么执行该语句 清楚原来的图片
Next
If Len(Target.Value) > 0 Then
ActiveSheet.Pictures.Insert(path & Target.Value & ".jpg").Select
With Selection.ShapeRange
.LockAspectRatio = msoFalse
.Top = rg.Top
.Left = rg.Left
.Height = rg.MergeArea.Height
.Width = rg.MergeArea.Width
End With
End If
Application.ScreenUpdating = True
End Sub

补充问题:
以上代码还需要和下面这个判断代码一起使用,但是出现了 二义性名称 Worksheet_Change
Private Sub Worksheet_Change(ByVal Target As Range)
If [G13] = "不需要" And [G8] = "不需要" Then
With ActiveSheet
Application.EnableEvents = False
.Unprotect
.UsedRange.Cells.Locked = False
.Range("H13") = "Choose an item."
.Range("H13,b5").Locked = True
.Protect
.EnableSelection = xlUnlockedCells
Application.EnableEvents = True
End With
Else
ActiveSheet.Unprotect
End If
End Sub
...全文
1116 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
z315559822 2016-02-09
  • 打赏
  • 举报
回复
看看都有些谁在线!!!
zhu_terry 2016-01-28
  • 打赏
  • 举报
回复
这里太冷清了。你真不该来这里问。

5,139

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧