|
本帖最后由 香川群子 于 2012-7-28 20:27 编辑
效果3中,【如果有则可以替换原来的图片】这句话意思不太明白。
其它的都实现了。- Sub AutoPicInsert()
- Application.ScreenUpdating = False
-
- PicPath = ThisWorkbook.Path '默认图片和文件放在同一文件夹里。如果不是,请自己修改、指定图片所在文件夹路径。
-
- [b1].Select '默认从B1单元格开始,如果把这一句注释掉,可以从B列任意行开始,向下检查直到A列单元格内容为空
- r = ActiveCell.Row
- Do Until ActiveCell.Offset(0, -1) = ""
- ActiveCell = ActiveCell.Offset(0, -1) 'B列抄写A列图片文件名称。
- ActiveCell.Font.ColorIndex = 3 'B列字体改红色
- ActiveCell.VerticalAlignment = xlTop 'B列文字靠上
- PicName = ActiveCell.Offset(0, -1)
- On Error Resume Next
- ActiveSheet.Pictures.Insert(PicPath & "" & PicName & ".jpg").Select '插入图片
- If Err.Number Then
- ActiveCell = "没有图片"
- Err.Clear
- GoTo Nxt
- Else
- With Selection
- .Placement = xlMove
- .ShapeRange.LockAspectRatio = msoTrue
- ActiveCell.RowHeight = .Height + 20 '设置单元格高度+20 (预留文件名高度)
- If .Width > ActiveCell.Width Then ActiveCell.ColumnWidth = .Width / 6 '如果图片比现在B列列宽大,则改大
- .Top = ActiveCell.Top + 20 '图片顶点位置
- .Left = ActiveCell.Left '图片左边位置
- End With
- End If
- Nxt:
- r = r + 1
- Cells(r, 2).Select
- Loop
- Range("A1").Select
-
- Application.ScreenUpdating = True
- End Sub
复制代码 |
|