VBA Excel-Addpicture设置.left从图片的中心而不是从左上角

时间:2018-11-25 12:44:37

标签: excel vba image

我有一个文件选择器来选择要加载到Excel工作表中的图像。 我使用addpicture选项并设置了顶部和左侧的距离来实现。 我的身高恒定为55像素,但我的宽度随图片而变化。

所以我的问题是我无法设置固定的.left输入,因为它是从左上角开始计数的。 有没有办法让.left输入从图像中心开始计数?

其他信息:图片的中心始终是页面的中心,这可能为代码提供了更简单的解决方案。

我目前有以下代码

Set xSh = ActiveSheet.Shapes.AddPicture(Logopath, LinkToFile:=msoFalse, SaveWithDocument:=msoCTrue, _
     Left:=250, Top:=308, Width:=-1, Height:=55)

我之前尝试用fill.shapes完成此操作,但是我无法根据比例自动调整形状的宽度。因此,如果我可以居中或从图片的中心设置.left,就可以完成。

Preview

Result answer

2 个答案:

答案 0 :(得分:0)

使用此代码将图片水平居中对齐,而.Top保持不变:

xSh.Left = (ActiveWindow.UsableWidth - xSh.Width) / 2

在现有代码后插入它。

答案 1 :(得分:0)

我的问题的解决方法

Set xSh = ActiveSheet.Shapes.AddPicture(Logopath, LinkToFile:=msoFalse, SaveWithDocument:=msoCTrue, Left:=0, Top:=308, Width:=-1, Height:=55)
  xSh.Left = (280 - (xSh.Width / 2))

感谢0liveradam8让我走上正轨