如何修改VBA宏实现遍历所有工作表调整图片尺寸?
修改VBA宏以遍历工作簿所有工作表修改图片尺寸
只需要在外层添加一个遍历工作簿所有工作表的循环,同时把操作对象从固定的ActiveSheet换成循环中的工作表对象即可。修改后的完整代码如下:
Option Explicit Sub ChangeAllPics() Dim s As Shape Dim ws As Worksheet ' 遍历工作簿中的每一个工作表 For Each ws In ThisWorkbook.Worksheets ' 遍历当前工作表中的所有形状(包括图片) For Each s In ws.Shapes s.LockAspectRatio = msoFalse s.Width = 65 s.Height = 65 Next s Next ws End Sub
关键修改点
- 移除了原代码中
Set ws = ActiveSheet的固定赋值,改用For Each ws In ThisWorkbook.Worksheets循环遍历所有工作表 - 将内层循环的
ActiveSheet.Shapes替换为ws.Shapes,确保每次操作的是当前循环到的工作表,而非固定的活动工作表 - 新增
Next ws闭合外层的工作表遍历循环
内容的提问来源于stack exchange,提问作者Arsham Gharbi
相关产品推荐
相关产品推荐

