VBScript创建Excel 2016对象

8
我在电脑上安装了两个版本的Excel(2010和2016),我想在Excel 2016上运行一个VBScript。
但是,
CreateObject("Excel.Application") 

只能创建Excel 2010。我该如何更改为2016?


可能是如何在Excel中打开特定版本的Word 2007/2010的重复问题。 - phuclv
据我所知,同一台计算机(+实例)上运行多个Office产品的版本不受支持,这也是其中一个重要原因。 - RBarryYoung
我认为你的问题是Excel 2010是打开Excel扩展名的默认程序。尝试将Excel 2016设置为默认程序。请告诉我结果。Sallam。- hollopost 1小时前 - hollopost
2个回答

4

对于2016年,您可以尝试CreateObject("Excel.Application.16")

然而,请查看下面的评论,因为这不能保证适用于最新版本。 这在我之前的版本中(包括2010)有效。

请注意,早期版本没有如此直接的对应关系,例如,我认为Office 2010 => 14。


2
嗨,安迪,谢谢你的回复。看起来没有什么区别,它仍然在2010中打开。 - Ray Lin
1
当您在系统上安装了多个版本的Office时,对于办公自动化的普遍看法是,您可以使用特定版本相关的PROGID来指定加载哪个版本(例如,Excel.Application.9 加载Excel 2000,Excel.Application.10 加载Excel 2002,Excel.Application.11 加载Office Excel 2003)... - phuclv
2
然而,这并不正确。Excel 2000及其后续版本共享相同的CLSID,因此使用这些PROGID加载的版本仅取决于最后安装的版本。 - phuclv
谢谢@LưuVĩnhPhúc。我已经加了一条注释,因为我现在理解了它不应该工作的原因。尽管如此,我仍然认为值得一提,因为这在2010年甚至(如果我没记错的话)2013年对我有效过。 - Andy G

3

我相信你可能遇到的问题是32位和64位之间的兼容性。

32bit: c:\Windows\SysWOW64\wscript.exe
64bit: c:\Windows\System32\wscript.exe

当您运行32位vbscript进程(默认情况下),映射自动采用32位excel版本。

所以,您应该尝试使用64位VBScript运行它

是的,您应该使用CreateObject("Excel.Application.16")


SysWOW64是为32位进程而设计的。64位进程存储在system32中。 - phuclv
@LưuVĩnhPhúc,我不使用Windows,所以有点困惑。我会更新答案。感谢您的纠正 :-) - Tarun Lalwani
嗨,谢谢提供信息。我和OP一样遇到了同样的问题,而且不熟悉VBS。Excel 2010和2016都是以32位运行的。 - aaa
@ppz,请加入此聊天室 https://chat.stackoverflow.com/rooms/166220/discussion-vbscript-create-excel-2016-object - Tarun Lalwani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接