如果需要制作如图1所示的产品目录,因为所需图片的尺寸通常并非完全一致,所以除了插入图片,还需要调整图片的尺寸以适应"图片"列单元格的大小。使用VBA可以快速完成这一系列繁杂的操作,示例代码如下。
Sub InsertPictures()
Dim lngRow As Long
Dim objShape As Shape
Dim objTargetCell As Range
With Sheet1
.Shapes.SelectAll'选中工作表中的所有Shape对象
Selection.Delete'删除选中的Shape对象
If .Cells(3, 1).Value <> "" Then
For lngRow = 3 To .Cells(3, 1).End(xlDown).Row
Set objTargetCell = .Cells(lngRow, 3)
.Shapes.AddPicture(ThisWorkbook.Path & "\" & _
.Cells(lngRow, 2) & ".jpg", True, True, _
objTargetCell.Left + 2, objTargetCell.Top + 2, _
objTargetCell.Width - 4, _
objTargetCell.Height - 4).Select
Selection.ShapeRange.LockAspectRatio = msoFalse'取消图片的纵横比,以适应单元格大小
Next lngRow
End If
End With
Set objTargetCell = Nothing
Set objShape