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
来自:求助得到的回答
展开全部
楼上代码比较简单粗暴,也能达到目的,只是当合并单元格里的行列宽不一致时,计算出来的宽度并不是合并的总宽度,另外图片挨着边框放感觉太满了,要离边框有一点点距离才好看,图片的宽高比也被改变了,有时并不能保持图片原有的外观效果了。我来改一下。
以下代码,选择单元格执行,不管是单个单元格,还是合并的单元格,自动把粘贴板内的图片粘贴到所选单元格内,并调整大小,当图片宽高比和单元格的不一致时,自动居中摆放。
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询