vba - 如何调整工作表上所有图像的大小?
问题描述
我在工作表上有几张图片。我想将它们全部调整为相同的大小,但我似乎无法让它正常工作。我以为它会像下面的代码一样,但这实际上使所有东西的大小都不同。
Sub ChangeAllPics()
Dim s As Shape
For Each s In ActiveSheet.Shapes
s.Select
s.Width = 500
s.Height = 200
Next s
End Sub
解决方案
我认为你只是错过了一件小事。默认情况下(当我测试它时)插入工作表的图像具有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
推荐阅读
- python - Keras 自定义损失:a * MAE + (1-a) * 常量
- grammar - 所有歧义语法都可以转换为明确语法吗?
- css - bootstrap 4:下拉菜单,导航药丸和单独的链接在水平线上
- facebook - 在 Facebook Graph Explorer 中为测试用户创建测试页面
- node.js - 生产 Angular 应用程序连接到本地 Express 实例而不是生产 Express 实例
- ios - 将默认 UITextField 值设置为 0(计算器)
- vb.net - 在 vb.net datagridview 中添加包含记录号的列
- linux - 通过sed替换方括号内的多行代码
- java - JPA 和 JTA 同步
- sql-server - Sql 在空闲时间后重置我的池连接