如何在VBScript中指定创建Excel 2016对象而非2010?
别担心,这个问题我之前帮不少开发者解决过,核心就是绕过系统默认的COM对象关联,直接指定Excel 2016的专属标识来创建实例。下面给你两种实用的解决方案:
方案一:直接指定Excel 2016的ProgID(推荐,不修改系统默认)
每个Office版本都对应一个唯一的ProgID(程序标识符),Excel 2016的ProgID是Excel.Application.16,你只需要把原来的CreateObject语句替换成这个特定标识就行:
' 创建Excel 2016实例 Set objExcel = CreateObject("Excel.Application.16") ' 可选:让Excel界面可见,方便验证版本 objExcel.Visible = True
如果不确定ProgID是否正确,可以通过注册表确认:
- 按下
Win+R输入regedit打开注册表编辑器 - 定位到
HKEY_CLASSES_ROOT,找到以Excel.Application.开头的项,其中Excel.Application.16就是对应2016版本(2010对应Excel.Application.14)
方案二:修改系统默认的Excel COM对象(长期默认用2016)
如果你希望之后所有用CreateObject("Excel.Application")的脚本都默认打开2016,可以重新注册Excel 2016的COM组件,步骤如下:
- 右键点击开始菜单,选择Windows终端(管理员)或命令提示符(管理员)
- 切换到Excel 2016的安装路径,常见路径如下:
- 64位Office:
cd "C:\Program Files\Microsoft Office\Office16\" - 32位Office(安装在64位系统):
cd "C:\Program Files (x86)\Microsoft Office\Office16\"
- 64位Office:
- 运行注册命令:
excel.exe /regserver
执行完成后,再用CreateObject("Excel.Application")就会默认创建Excel 2016实例了。如果之后需要切回2010,只需要到Office 2010的安装路径(一般是Office14文件夹),同样运行excel.exe /regserver即可。
内容的提问来源于stack exchange,提问作者Ray Lin
相关产品推荐
相关产品推荐

