溜溜问答 > 日常办公 > Excel > Excel vba 如何让图片在合并的单元格居中?
高傑西
高傑西
邀请你来回答
551人阅读 2022-04-12

Excel vba 如何让图片在合并的单元格居中?

网上找了很多vba代码,都不是很理想,都有各种问题,比如会影响其他图片居中,有些图片会不居中等问题。我的目的是可以自己选中的图片,在合并的单元格居中,没有选中的互不影响,并且支持单元格和合并的单元格。图片中的代码,可以实现合并单元格居中,但是会影响其他表格里的图片不居中,或者帮我优化下这份代码也行,但也不是所有表格会有影响,有的又没有影响,特别时直至整个表格复制过去的时候,就肯定会有影响,我不知道哪里可以修改,大神帮下忙,谢谢!
Excel vba 如何让图片在合并的单元格居中?
我要回答
3个回答

看代码没考虑到90、270度旋转的图片。

查看全部
2022-04-12
回复 采纳

把For each SH in Sheets这句删除

删除下面的1个Next

把For each ShapePic in SH.Shapes这句改成:

For each ShapePic in Selection.ShapeRange

查看全部
2022-04-12
(17) 回复 采纳

如果图片大小不超过单元格,代码是没有问题的,我参照进行了改写,执行效果满意,效果和代码见下面两图:

Excel vba 如何让图片在合并的单元格居中?

Excel vba 如何让图片在合并的单元格居中?


改写中,由于测试表全部是形状,取消了if判断,代码为了调试观察增加了两个中间变量,可以进一步简化如下为:

Option Explicit


Sub 图片居中()

Dim st As Worksheet, pic As Shape, r As Range

For Each st In Worksheets

For Each pic In st.Shapes

Set r = pic.TopLeftCell.MergeArea

pic.Left = r.Left + (r.Width - pic.Width) / 2

pic.Top = r.Top + (r.Height - pic.Height) / 2

Next pic

Next st

End Sub

查看全部
2022-04-12
(2) 回复 采纳

相关问题

在Word里如何让图片在单元格里居中?
共2条回答 >
C: 点右键——>单元格对其方式——>选中间那行,就是上下居中,三个分别是左中,正中,右中
回复
Excel如何不合并单元格让文字居中?
共2条回答 >
奇妙小火车: 不是很明白你的意思,选中需要居中的单元格右击选择设置单元格格式,点对齐,里面有
(6) 回复
在Excel表格中如何合并单元格,让标题居中?
共1条回答 >
£芒果布丁£: 你好!要合并单元格,首先要拖动选中这些单元格,然后点击顶端工具栏上的合并并居中按钮。
(2) 回复
Excel单元格如何合并居中?
共1条回答 >
谷兰国际软装: 两种方法:-、选中要合并区域一一右单击一一设置单元格格式一一对齐一一合并单元格前打勾一一一确定二、开始一一选中要合并区域一一找到工具栏的合并居中按钮,点击它即可
回复
Excel vba 怎么设置单元格中的图片居中?
共1条回答 >
WP: 1、打开需要设置标题的Excel文件,可以看到里面数据。2、选中表格中需要制作成图表的数据。3、然后,点击界面上方工具栏中的“插入”。并找到“图表”,以创建图表。4、在“插入图表”中选择“柱形图”,再选择簇状柱形图。5、这样就做了一个图表出来,每个数据都可以清楚对比。6、先选中图表,在菜单栏中出现了“图表工具”,点击“工具”。7、找到“图表工具”下方的“添加元素”。8、点击“添加元素”,并依次的点击列表中的“图表标题”-“居中覆盖”。9、现在图表标题的位置变成了编辑状态,输入标题即可。
(19) 回复
发表成功!
感谢您的分享!
好的
官方微信群

(微信添加“妙妙”或“笑笑”,邀您进群)