首页 > 解决方案 > 如何调整工作表上所有图像的大小?

问题描述

我在工作表上有几张图片。我想将它们全部调整为相同的大小,但我似乎无法让它正常工作。我以为它会像下面的代码一样,但这实际上使所有东西的大小都不同。

Sub ChangeAllPics()
Dim s As Shape
For Each s In ActiveSheet.Shapes
s.Select
    s.Width = 500
    s.Height = 200
Next s
End Sub

标签: vbaexcel

解决方案


我认为你只是错过了一件小事。默认情况下(当我测试它时)插入工作表的图像具有LockAspectRatio=True.

您需要将其设置为False,否则更改可能是不可预测的:如果您使用单步执行代码,F8您可以观察到Width更改,但随后在下一行Height恢复了之前的宽度更改。

因此,将此设置为 false 并且图像应保留指定的宽度/高度。

Option Explicit
Sub ChangeAllPics()
Dim s As Shape
Dim ws As Worksheet
Set ws = ActiveSheet

For Each s In ActiveSheet.Shapes
    s.LockAspectRatio = msoFalse
    s.Width = 500
    s.Height = 200

Next s
End Sub

推荐阅读