首页 > 解决方案 > 检索 GPSLongitudeDecimal 时从 EXIF 中提取 GPS 信息会崩溃 Excel

问题描述

我在https://www.everythingaccess.com/tutorials.asp?ID=Extracting-GPS-data-from-JPEG-files找到了一种从 EXIF 中检索 GPS 信息的方法 。

您可以从https://www.everythingaccess.com/downloads/GPSExifReader.zip下载原始 Access 文件

我将这些用于访问类模块的 VBA 导入 Excel。我可以检索十进制 GPS 经度之外的所有 GPS 信息。

据我了解,编码器 (Wayne Phillips) 正在机器内存中执行代码以从图像创建虚拟 COM 对象,从而公开 EXIF 属性。

一切都在运行,除了程序Call VCOMObject.AssignVar(GPSLongitudeDecimal, VCOMObject.GPSLongitudeDecimal)中的那个Property Get GPSLongitudeDecimal() As Variant

它使我的 Excel 2013 崩溃,然后重新启动它。尝试注释掉有问题的调用并适用于每个 Property Get 过程。只是经度崩溃而没有引发任何明显的错误。

认为在那个经度 exif 参数上可能有些奇怪,所以我尝试了不同的 jpeg,以及来自不同相机的不同 jpeg,并且发生了同样的事情。

由于这是一个复杂的类模块巫术,我提供了一个指向我的 Excel 文件 ( https://yiqyyh.s.cld.pt ) 的链接,只需单击网页左侧的“下载”。Rar 文件还包含三个测试图像,其 EXIF 上带有 GPS 信息。

更简单的测试方法是运行UserForm1UserForm 并单击CommanButton1。这将打开一个浏览窗口以选择图像。如果文本框被填充,那么没有什么不好的事情发生,但如果它崩溃了,那是我的问题。

编辑:我尝试了另一台机器,Excel 2013 崩溃了。

EDIT2:另一台机器在我的工作网络中。我尝试在我的家用 PC 上运行它,也运行 Excel 2013,它工作正常。我需要在工作中运行它。

标签: excelvbagps

解决方案


我遇到了和你完全相同的问题:
在 32 位版本的 Office 上,GPSExifReader 运行良好。在 64 位版本上,它在检索属性时冻结LongitudeDecimal(纬度和其他一切正常)。

我通过使用另一个 Wayne Phillips 的优秀工具和教程解决了我的问题。可从该链接下载的 VBA 模块可以毫不费力地拖入 Excel,并且该教程使编写返回纬度经度的宏变得容易。


推荐阅读