我正在写作,因为我在努力理解为什么在使用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安装在另一台具有不同屏幕分辨率的笔记本电脑上。这可能是我面临的问题的原因吗?如果是这样,你知道一种以与屏幕分辨率无关的方式修复它吗?
谢谢,Stefano
答案 0 :(得分:1)
Microsoft从Excel 2010开始引入了新的图片分辨率和压缩处理流程,然后在未来几年内随着技术的快速改进而调整默认值。这可能是您的问题的原因。
您机器之间不同的显示器尺寸/分辨率也会影响默认(和可用)设置。
即使显示器的大小不同,尝试将Windows 显示分辨率设置为两者的相同值会有所帮助,至少是暂时的。
步骤略有不同,具体取决于您正在运行的Windows版本,但它们对Google来说并不难。 (例如, here 是Windows 7安装的说明。)
检查两台计算机上的以下设置 查看哪些选项可用 (不是灰色) >更改任何内容,因为您需要决定两者都可用的设置。
File
→Options
Advanced
Image Size & Quality
记下哪些设置已选择哪些设置可用:
☑ Do not compress images in file
(复选框)
Default Resolution
(下拉列表)
对于下一步,您需要在工作表上显示图片,因此您也可以使用"问题图像"从你的例子。
单击图像将其选中。这应该会显示Picture Tools / Format
菜单。
点击Compress Pictures
在打开的对话框中,在Resolution
下,记下哪些设置已选择哪些设置可用。
希望两台机器都有这样的组合。一旦您将它们设置为相同,重新启动两台计算机,然后再次尝试插入图片。
正如我所提到的,可能有很多因素影响它。确保图形在两台独立计算机上的行为相同的唯一方法是,它们具有相同的软件和图形硬件。
如果所有其他方法都失败并且你想尝试再拍摄一次,那么可能会影响一台或两台机器的注册机构设置。
很难找到Office上数千个注册表设置的文档(默认情况下很多都没有使用,例如这个) - 并且一个 source 意味着这只会影响转换为网页的Office文档中图像的分辨率。
但是,我相信,如果您曾将Excel文档保存为网页,则此注册表项(及其相关的"已知问题&#34) ;)也可能受到影响,所以你可以仔细检查。
要解决此问题,请添加以下注册表项以防止更改图像大小。
标准注册表警告: 如果使用注册表编辑器或使用错误地修改了注册表,则可能会出现严重问题 另一种方法。这些问题可能需要您重新安装 操作系统。微软无法保证这些问题可以解决 得到解决。 修改注册表需要您自担风险。
退出所有程序。
点击 Windows键,输入
regedit
,然后按 Enter 。找到并选择以下注册表子项:
<强>
HKEY_CURRENT_USER\Software\Microsoft\Office\Common
强>选择子项后,点击
Edit
菜单,点击New
,然后选择DWORD Value
。键入
DownRevRasterizationDPI
,然后按 Enter 。右键点击
DownRevRasterizationDPI
,然后点击Modify
。- 醇>
在
Value
数据框中,键入1
到300
范围内的值,然后点击OK
。在
Value
数据框中,设置要为图像指定的分辨率值。例如,如果设置96
,则为{ Windows的默认屏幕分辨率值,并插入屏幕截图 在Excel中,屏幕截图的图像分辨率变为96 dpi
。
- 在
醇>File
菜单上,单击Exit
退出注册表编辑器。
通常我喜欢包含指向&#34;更多信息&#34;在我的回答中,但除了源链接(上图)之外,我恐怕除了源链接之外没有。
祝你好运!