[请教]VBA批量修改Excel图片的宽度和高度遇到的问题

qqwanjun 2014-11-08 05:24:03
有一个Excel表,第一列是序号,第二列是图片,
需要批量修改图片的宽度高度

使用下面的VBA代码:

Sub Marco()
Dim Pic As Picture, i&
i = [A65536].End(xlUp).Row
For Each Pic In Sheet1.Pictures
If Not Application.Intersect(Pic.TopLeftCell, Range("B1:B" & i)) Is Nothing Then
Pic.Top = Pic.TopLeftCell.Top
Pic.Left = Pic.TopLeftCell.Left
Pic.Height = 5
Pic.Width = 5
End If
Next
End Sub

执行的结果如下图:


我的目的是,所有B列的图片都修改宽度和高度,请大家指点一下,在线等,谢谢。
...全文
2070 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
X-i-n 2014-11-12
  • 打赏
  • 举报
回复
我又细看了下。 你的代码是判断图片左上角所在单元格有没有和B列相交,那几张没有变化的图片,很可能是topleftcell落到A列去了,你可以在end if之后,补一句,debug.print Pic.TopLeftCell.Column,看它等不等于2(正常情况下应该等于2) 或者换个思路,如果整个SHEET只有第2列有图片,就把if判断语句去掉,直接修改图片大小。top,left两个属性也可以省掉 先测试一下我说的那句debug吧
X-i-n 2014-11-12
  • 打赏
  • 举报
回复
不能调整的图片都不在单元格里,你再确认一下看看是不是这个情况
qqwanjun 2014-11-10
  • 打赏
  • 举报
回复
图片都是从网页上复制粘贴下来的, 操作流程: 选择网页图片,右击选择“复制图片”,选中Excel单元格粘贴图片,调整图片大小适合单元格。 所有的图片都是这样获取的,问题是一部分图片可以调整大小,一部分无法调整。
xiaodeerdeer 2014-11-10
  • 打赏
  • 举报
回复
难道跟你图片的格式有关系

5,139

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧