细胞中心图片

时间:2018-03-16 10:11:47

标签: excel vba excel-vba

我需要帮助来调整我的代码。

E有30张不同大小的图片,我想将这些图片放在以E5开头的单元格中。

以下代码仅将图像置于单元格E5中。如何调整它使每个单元格中的所有图像居中?

Sub aTest()
   CenterMe ActiveSheet.Shapes(1), Range("E5")    
End Sub

Sub CenterMe(Shp As Shape, OverCells As Range)
    With OverCells
        Shp.Left = .Left + ((.Width - Shp.Width) / 2)
        Shp.Top = .Top + ((.Height - Shp.Height) / 2)
    End With
End Sub

1 个答案:

答案 0 :(得分:0)

    Sub CENTER_SHAPES()
Application.ScreenUpdating = False
Dim MyShape As Shape

For Each MyShape In ActiveSheet.Shapes
    If MyShape.Type = msoPicture Then CenterMe MyShape, Range(MyShape.TopLeftCell.Address(False, False))
Next MyShape

Set MyShape = Nothing
Application.ScreenUpdating = True

End Sub

此代码将循环活动工作表上的每个形状(图像类型),它将启动您的子集中心。希望它有所帮助!

更新的答案:已添加ScreenUpdating = False,因为OP表示大约需要7分钟。