注册 登录
编程论坛 VFP论坛

请教:找不到ET.APPLICATIO类定义

zhousr 发布于 2023-05-24 13:42, 1328 次点击

本机已安装WPS,安装目录中有et.exe文件。运行  wps=Createobject("et.application") 时,提示找不到et.aoolication类定义。
这是什么原因?WPS可能是P.j的,已经激活,与这有关吗?
11 回复
#2
吹水佬2023-05-24 14:57
试试用 ket.application
#3
gs25367856782023-05-24 15:46
你把ET换成KET就可以了
我总觉得还是用EXCEL2003可靠。
#4
厨师王德榜2023-05-24 16:06
我有一台机器装的wps个人版,刚开始也遇到此问题,后来直接用
wps=Createobject("excel.application"),发现也能返回OLE对象,
所以 我估计wps的开发可能为了与微软靠拢,作了某些改进.
#5
zhousr2023-05-24 17:14
有你们真好,改成ket入行了
#6
zhousr2023-05-24 17:39
已经打开一个文件,要判断一下,如果是WPS文件,就将其另存为.XLSX,再将这个XLSX文件打开。第一次用WPS,老是搞不定,很不好意思地向各位求个代码
我的不成功的代码如下:
DECLARE long IsWindowVisible IN user32 long
Wps=Createobject("ket.application")
*Wps=getobject(,"ket.application")
wps.Visible = 1
DO WHILE IsWindowVisible(wps.hWnd)!= 0
    M_File=wps.activesheet.name   &&获取文件名
    Wps.Workbooks.SaveAs(&lj\usertable\M_File.xlsx)
    Wps.Workbooks.Open(&lj\usertable\M_File.xlsx)
ENDDO
谢谢!
#7
csyx2023-05-24 21:00
目前我用 caption 判断是不是 wps

? 'WPS' $ oo.Application.Caption

oo 可以是工作簿,工作表,Excel 或 WPS 对象。像你上面的代码,oo 改为 wps
#8
csyx2023-05-24 21:02
另外,获取打开的文件名不是取工作表的 name,要取工作簿的 fullname
#9
csyx2023-05-24 21:09
以下是引用厨师王德榜在2023-5-24 16:06:49的发言:
我有一台机器装的wps个人版,刚开始也遇到此问题,后来直接用
wps=Createobject("excel.application"),发现也能返回OLE对象,
所以 我估计wps的开发可能为了与微软靠拢,作了某些改进.

wps 自带一个配置工具,默认是勾选了兼容的,所谓兼容,其实就是篡改了注册表,把 Excel 的 ProgID、CLSID 指向了 wps 自己
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2023-5-24 21:10编辑过]

#10
zhousr2023-05-25 09:30
谢谢csyx!我先试试
#11
星光悠蓝2023-05-26 11:13
试过分别用WPS和Ms Office录宏代码,还是有较大差别,觉得VFP搭配Ms Office更好用些,WPS出现的问题不知道怎样解决。
#12
zhousr2023-05-26 14:33
现在很多政府部门配国产电脑,只能用国产系统,用WPS,所有.EXE都用不了。没办法,只好增加对WPS文件的支持。
1