|
求助高手解决,我想在这个表里在任一单元格上写上字,然后在这个单元格上自动更新这个文字的图片,图片大小按单元格的大小高小0.1CM长按原图比例调整,如图(即实现我输入爸在这个单元格上自动更新爸的图片,输入爸的笔顺在这个单元格上自动更新出爸的笔顺图:
- Private Sub Worksheet_Change(ByVal T As Range)
- If T.Count > 1 Or T.Column > 1 Then Exit Sub '当单元格不满足时退出
- Dim mypath$, i&, pic As Shape, picH, shp As Shape
- On Error Resume Next
- For Each pic In Sheet1.Shapes '删除原来单元格图片
- If pic.Name = T.Address Or pic.Name = T.Offset(0, 4).Address & "bs" Then pic.Delete
- Next
- mapath = ThisWorkbook.Path & "\文字库" '图片所在文件夹路径
- If T.Value <> "" And Dir(mapath & T.Value & ".jpg") <> "" Then '插入jpg文字图片
- Sheet1.Shapes.AddPicture(mapath & T.Value & ".jpg", True, True, T.Left + 1, T.Top + 1, T.Width - 2, T.Height * 2 - 2).Select
- Selection.Name = T.Address
- With T.Offset(0, 4) '插入笔顺的单元格插入笔顺图片
- If Dir(mapath & T.Value & "的笔顺.png") <> "" Then
- Sheet1.Shapes.AddPicture mapath & T.Value & "的笔顺.png", True, True, .Left, .Top, -1, -1
- ElseIf Dir(mapath & T.Value & "的笔顺.jpg") <> "" Then
- Sheet1.Shapes.AddPicture mapath & T.Value & "的笔顺.jpg", True, True, .Left, .Top, -1, -1
- End If
- Set shp = ActiveSheet.Shapes(ActiveSheet.Shapes.Count) '设定图片大小(宽度总大于高的,故用高度确定图片高度)
- shp.Left = .Left + 2 '尺寸不对可以改下下面几个数字参数
- shp.Top = .Top + 2
- picH = .Height / shp.Height * 0.9
- shp.ScaleWidth picH, msoFalse, msoScaleFromTopLeft
- shp.Name = .Address & "bs"
- End With
- End If
- T.Offset(1).Select
- End Sub
复制代码
|
|