Excel VBA裁剪图片/形状并放入单元格中

我正在处理五张照片(打印屏幕形状),并希望将它们放在选定的单元格中,例如。 细胞N21,P21,S21,U21和W21。 我有下面的VBA代码裁剪五个图片/形状,它工作正常,但我不知道如何把它们放在上面选定的单元格。 任何人都可以启发我吗? 另外,如何用VBAbutton删除五张图片?

Sub CropPictures() Application.ScreenUpdating = False Dim shp As Shape Dim sngMemoLeft As Single Dim sngMemoTop As Single Dim i As Integer, j As Integer i = 0: j = 0 For Each shp In ActiveSheet.Shapes i = i + 1 With shp If .Type = 13 Or .Type = 15 Then j = j + 1 sngMemoLeft = .Left sngMemoTop = .Top With .PictureFormat .CropLeft = 20 .CropTop = 195 .CropBottom = 27 .CropRight = 565 End With With shp .Height = 20 .Width = 195 End With .Left = sngMemoLeft .Top = sngMemoTop End If End With Next shp End Sub 

你可以如下图所示将图像定位到特定单元格的excel中这可以通过将形状的左上angular属性设置为单元格引用来工作。

假设您想要删除活动工作表中的所有形状,您可以沿着以下几行添加一些内容:

 Dim shp As Excel.shape For Each shp In ActiveSheet.Shapes shp.Delete Next 

如果一个特定的5形状,你可以使用相同的结构,但testing如果形状有一个特定的名称,然后删除。

 If shp.Name = "Shape1" Then shp.Delete End If 

我也喜欢明确地命名我的图片,例如myPict.Name =“Pic1”,这可以避免以后跟踪形状数字的问题。