ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3432|回复: 34

[求助] 装有WPS,能否用VBA强制以OFFICE EXEL方式打开文件

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-9-1 12:51 | 显示全部楼层 |阅读模式
如题,现时不少电脑由于N多原因,不得不同时装有WPS和 Office Excel,
所以,当在PPT中用:
fpth="D:\XXX\PPT\XXX.xlsx"

Set xlApp = GetObject(, "Excel.Application")
Set MyXL = GetObject(fpth)  
或 Set MyXL = xlApp.Workbooks.Open(fpth)
打开一个Excel文件时,有时就会出现是WPS方式打开而提取不到数据情况。


也知道在WPS设置、或文件属性的“打开方式”等方面更改设置,是可以指定默认打开方式的,但有时灵有时不灵;


或者换一台电脑时又不行(总不能每个使用者都要自己设置一通吧),
因此,能否 在VBA代码中强制只能用 Office Excel 打开 文件呢?

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-9-1 19:34 | 显示全部楼层
难道要用 Shell ~Excel.exe ?
但这对打开后提取数据、处理后关闭等似乎很麻烦...

TA的精华主题

TA的得分主题

发表于 2023-9-1 19:41 | 显示全部楼层
鼠标右键单击工作簿——打开方式——选择其它打开方式——选择excel——选择始终。这样设置过后,再双击工作簿文件就只是EXCEl打开工作簿了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-9-1 23:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ykcbf1100 发表于 2023-9-1 19:41
鼠标右键单击工作簿——打开方式——选择其它打开方式——选择excel——选择始终。这样设置过后,再双击工 ...

有面说过了,这样设置,有的行有的不行,要在WPS里面设置......
有的软件,那怕你只用过一次,你都不知它会在后台干了些什么,
其二,就算这样设置了,关键是:
假如文件发给别人用,也是“双版本”系统,总不能每个都叫别人慢慢去设置,
或者别人只习惯使用WPS情况下,总不能因为使用到这个文件就改来改去吧。
麻烦......

TA的精华主题

TA的得分主题

发表于 2023-9-2 14:22 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
要在WPS配置工具里面设置的,取消与OFFIC文件兼容
113244iwjzwow3qggjdwkj.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-9-2 22:14 | 显示全部楼层
Lovertdos 发表于 2023-9-2 14:22
要在WPS配置工具里面设置的,取消与OFFIC文件兼容

谢谢关注,这里问的不是怎样设置的问题
设置完之后,对于只习惯使用WPS的,打开方式默认为Office Excel 了,不是又不方便了吗,
就是不想搞到要设置来设置去,而是希望用VBA指定打开,一了百了
另外,发给别人用,遇到这种情况也不用再教别人设置一通才能用,不出错

TA的精华主题

TA的得分主题

发表于 2023-9-3 09:49 来自手机 | 显示全部楼层
本帖最后由 Lovertdos 于 2023-9-3 09:52 编辑

你这问题有点莫名其妙,对于喜欢ms的,只要用过一次,电脑上设置的肯定是MS。同理喜欢WPS,肯定是调用WPS。只需要设置一次终身受用。因为这个设置是系统级的,只能手动设置,VBA代码无法干预。
归根结底还是你这代码有问题,为啥不写成兼容WPS低版本的

TA的精华主题

TA的得分主题

发表于 2023-9-3 12:25 | 显示全部楼层
Lovertdos 发表于 2023-9-3 09:49
你这问题有点莫名其妙,对于喜欢ms的,只要用过一次,电脑上设置的肯定是MS。同理喜欢WPS,肯定是调用WPS。 ...

只要是能 手动设置的 都可以用代码实现,只不过有些网上没有案例,需要自己摸索

TA的精华主题

TA的得分主题

发表于 2023-9-3 12:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 cidanji 于 2023-9-20 15:44 编辑

.            

TA的精华主题

TA的得分主题

发表于 2023-9-3 12:47 | 显示全部楼层
Set xlApp = GetObject(, "Excel.Application") ''已经打开的 excel对象
Set MyXL = GetObject(fpth)    ''直接获取 已打开文件 。所以先判断是不是 用wps打开的,是的话 关闭文件 用xlApp.Workbooks.Open打开
或 Set MyXL = xlApp.Workbooks.Open(fpth) ''这个应该不会 wps打开
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-19 03:24 , Processed in 0.031958 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表