目前我正在尝试在VBA中缩放图片,但似乎无法获得我需要的内容。每次我跑......但
ActiveSheet.Pictures.Insert("C:\\\Logo.bmp").Select
With Selection
.ShapeRange.ScaleWidth 1.4, msoTrue
.ShapeRange.ScaleHeight 0.5, msoFalse
End With
它最初将缩放到正确的宽度,但是当我转到下一行并尝试缩放高度时,它会改变宽度。有人可以帮助我理解为什么会发生这种情况,并建议一种更好的缩放图片的方法。我需要它的长度大约125%,高度小约50%。
非常感谢。
答案 0 :(得分:6)
包括以下一行:
.ShapeRange.LockAspectRatio = msoFalse
要允许宽度和高度“解锁”,请将其放在顶部。
With Selection
.ShapeRange.LockAspectRatio = msoFalse
.ShapeRange.ScaleWidth 1.4, msoTrue
.ShapeRange.ScaleHeight 0.5, msoFalse
End With
答案 1 :(得分:-1)
在ShapeRange.ScaleWidth和ScaleHeight方法中,如果想要相对缩放它,则RelativeToOriginalSize参数应为 msoFalse (如在维持纵横比时,它将调整宽度和缩放时的高度)。因此,如果您不希望它相对缩放,只需将该参数设置为 msoTrue :
ActiveSheet.Pictures.Insert("C:\\\Logo.bmp").Select
With Selection
.ShapeRange.ScaleWidth 1.4, msoTrue
.ShapeRange.ScaleHeight 0.5, msoTrue
End With