当前位置:编程学习 > VB >>

GetObject 搞了一天都没有搞明白,神经兮兮的

--------------------编程问答-------------------- getobject用于获取已经打开的文件对象,必须指明文件名全路径(第一个参数),如果没有使用文件名参数,效果和createobject相同 --------------------编程问答-------------------- 谢谢你的回答,可是我还是不大懂

可能我之前说明的不好,我再说一下

该程序只有在timer中有以下代码

Dim OBJ As Object
On Error Resume Next
Set OBJ = GetObject(, "excel.Application")
debug.Print err.Description


1.当执行程序时,如果在执行这个程序之前就已经打开了EXCEL,那么 err.Description是为空的,也就是没有错误值
2.如果执行了这个程序(还没有打开EXCEL),那么 err.Description的描述是ActiveX 部件不能创建对象

第1,2都好理解,,问题在于以下

3.
A.执行程序(还没有打开EXCEL )  错误信息为 ActiveX 部件不能创建对象

B.双击桌面EXCEL,打开EXCEL程序   错误信息还是为 ActiveX 部件不能创建对象 (为什么,此时已经打开了EXCEL,应该GetObject不会再返回一个错误了啊)----问题点

C.打开了EXCEL,此时EXCEL程序是激活状态,随便点击一下其它窗体(让EXCEL程序不是激活状态),程序不再出现错误信息。此点不明白,为什么呢,当EXCEL失去了焦点就不错了呢-----为什么


上面就只有4行代码,请大家试一下(VB 6 + OFFICE 2003+WIN7或WINXP)

值得说的是,,如果不是EXCEL,,而是其它的软件,如金山的WPS,那么同是上面的代码写法,均不会出现这种问题。。



--------------------编程问答-------------------- 就是什么时候写入 ROT 的问题。
Excel 喜欢在失去焦点时写入,WPS 喜欢在启动时写入,这个时机纯属开发者的个人喜好,没有硬性规定的。
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,