EXCEL 粘贴图片 自适应 合并的单元格 大小
感谢你解答的那个自适应单元格大小,有没有ExcelVBA宏粘贴图片同时自适应合并的单元格大小...
感谢你解答的那个自适应单元格大小,有没有Excel VBA宏粘贴图片同时自适应合并的单元格大小
展开
2个回答
展开全部
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
来自:求助得到的回答
百事牛
2024-10-28 广告
2024-10-28 广告
针对Excel表格的密码解锁问题,深圳奥凯丰科技有限公司提供专业的软件解决方案,旨在帮助用户快速、安全地恢复或移除表格中的保护密码。我们的软件采用先进的密码恢复技术,能够有效应对多种加密类型,包括工作簿打开密码、工作表保护密码等。用户只需简...
点击进入详情页
本回答由百事牛提供
展开全部
楼上代码比较简单粗暴,也能达到目的,只是当合并单元格里的行列宽不一致时,计算出来的宽度并不是合并的总宽度,另外图片挨着边框放感觉太满了,要离边框有一点点距离才好看,图片的宽高比也被改变了,有时并不能保持图片原有的外观效果了。我来改一下。
以下代码,选择单元格执行,不管是单个单元格,还是合并的单元格,自动把粘贴板内的图片粘贴到所选单元格内,并调整大小,当图片宽高比和单元格的不一致时,自动居中摆放。
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
以下代码,选择单元格执行,不管是单个单元格,还是合并的单元格,自动把粘贴板内的图片粘贴到所选单元格内,并调整大小,当图片宽高比和单元格的不一致时,自动居中摆放。
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询