EXCEL 粘贴图片 自适应 合并的单元格 大小

感谢你解答的那个自适应单元格大小,有没有ExcelVBA宏粘贴图片同时自适应合并的单元格大小... 感谢你解答的那个自适应单元格大小,有没有Excel VBA宏粘贴图片同时自适应合并的单元格大小 展开
 我来答
飞雨飘eM
2019-02-16 · TA获得超过285个赞
知道小有建树答主
回答量:351
采纳率:81%
帮助的人:180万
展开全部
Sub 宏()
On Error Resume Next
If ActiveCell.MergeArea.Rows.Count > 1 Then
wid = ActiveCell.Width * ActiveCell.MergeArea.Columns.Count
heg = ActiveCell.Height * ActiveCell.MergeArea.Rows.Count
Else
wid = ActiveCell.Width
heg = ActiveCell.Height
End If
ActiveSheet.Paste
Selection.ShapeRange.LockAspectRatio = msoFalse
Selection.ShapeRange.Width = wid
Selection.ShapeRange.Height = heg

End Sub

来自:求助得到的回答
名字我要怎么起
2021-12-22 · TA获得超过145个赞
知道答主
回答量:100
采纳率:100%
帮助的人:17.1万
展开全部
楼上代码比较简单粗暴,也能达到目的,只是当合并单元格里的行列宽不一致时,计算出来的宽度并不是合并的总宽度,另外图片挨着边框放感觉太满了,要离边框有一点点距离才好看,图片的宽高比也被改变了,有时并不能保持图片原有的外观效果了。我来改一下。
以下代码,选择单元格执行,不管是单个单元格,还是合并的单元格,自动把粘贴板内的图片粘贴到所选单元格内,并调整大小,当图片宽高比和单元格的不一致时,自动居中摆放。

Sub 粘贴并调整图片大小()

w = ActiveCell.MergeArea.Width '获取单元格宽度
h = ActiveCell.MergeArea.Height '获取单元格高度
l = ActiveCell.Left '获取单位格左侧位置
t = ActiveCell.Top '获取单位格上侧位置

ActiveSheet.Paste '粘贴图片
With Selection.ShapeRange
.Left = l + 2 '调整图片左侧位置
.Top = t + 2 '调整图片上侧位置
.Width = w - 5 '调整图片宽度
End With

If Selection.ShapeRange.Height < h - 5 Then '当图片宽度小于单位元格宽度时
Selection.ShapeRange.Top = t + (h - Selection.ShapeRange.Height) / 2 '图片上下居中放单元格内
Else '当图片宽度天于单位元格宽度时
Selection.ShapeRange.Height = h - 5 '调整图片高度
Selection.ShapeRange.Left = l + (w - Selection.ShapeRange.Width) / 2 '图片左右居中放单元格内
End If
Selection.Placement = xlMoveAndSize '定义图片大小位置随单元格变化而变化

End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式