【发布时间】:2018-05-20 21:52:19
【问题描述】:
我正在写作,因为我正在努力理解为什么在使用 VBA 导入图片时会得到 2 个不同的结果。
图片来源为:
https://maps.googleapis.com/maps/api/staticmap?size=390x280&zoom=8&maptype=terrain&markers=color:red%7Clabel:A%7C18.510516,-72.287768&key=mykey
我正在使用此 VBA 代码将图片插入单元格Z8:
Range("Z8").Select
ActiveSheet.Pictures.Insert(URL).Select
With Selection
.ShapeRange.ScaleWidth 0.999, msoTrue
End With
*在这种特定情况下不需要.ShapeRange.ScaleWidth 0.999,但即使我删除了With Selection 指令,我也会得到相同的输出。
如果我在 Excel 2010 中运行用于构建工作表的 VBA 代码,一切看起来都很好,如下所示:
但是当我在 Excel 2016 中运行 VBA 代码时,我得到了一些不同的东西:
本例中的图片较大且超出页面限制。您可以在左上角看到的 QR 码也是如此。垂直(和水平)分页符也已移动(我无法解释自己为什么),但我会将此问题留给另一条消息。
一般而言,Excel 2016 中的图片比 Excel 2010 中的图片大 1.25。Excel 2016 安装在另一台具有不同屏幕分辨率的笔记本电脑上。这可能是我面临的问题的原因吗?如果是这样,您是否知道以与屏幕分辨率无关的方式修复它的方法?
谢谢,斯特凡诺
【问题讨论】:
-
更明智的做法是在插入后通过调整大小来确保插入的图像具有一定的大小
-
谢谢,你是对的。我将尝试使用
.ShapeRange.Width = xxx和.ShapeRange.Height = xxx以像素为单位分配图片大小。我的问题是:与.ShapeRange.ScaleWidth做的事情不一样吗?我的图片是(参见 URL)390x280 像素,我不明白为什么在 Excel 2010 中一切都很好,比例因子为 1.00,而在 Excel 2016 中我需要比例因子为 0.80。 -
我尝试了@rlb.usa 建议的修复方法,但我得到了非常相似的结果:在 Excel 2016 中,图片比 Excel 2010 中的大,即使使用
.ShapeRange.Height = xxx。我也刚刚意识到这可能取决于屏幕分辨率。我检查了两台笔记本电脑,使用 Excel 2010 的笔记本电脑是 1920x1080(因子比例为 113%),使用 Excel 2016 的笔记本电脑是 1920x1080(因子比例为 125%),我将进行一些额外的测试。
标签: excel excel-2010 excel-2016 vba