用到CreateObject("MSScriptControl.ScriptControl"),要引用什么呀?

tdcq123 2008-02-20 01:54:26
用到CreateObject("MSScriptControl.ScriptControl"),要引用什么呀?
-----------------------
我不知用到这行代码时,要引用什么,或是部件中增加什么?
需要增加部件 mscrosoft script control 1.0吗?
我发现如果不添加部件mscrosoft script control 1.0也是可以的.为什么,如果不添加部件,要引用什么呢?
...全文
744 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sirenssong 2011-11-20
谁帮我解决一个问题,EXCEL里像这个 88[长]+68[宽] 一样,后面单元格写入自定义函数就能计算结果,由于EVALUATE不能超出255个字符,所以,有人提出说用这个代码自定义函数,但是我不知道怎么编才能达到这个效果,代码如下
Function dd(Rng As Range)
Dim s As Object
Set s = CreateObject("MSScriptControl.ScriptControl")
s.Language = "vbscript"
dd = s.Eval(Rng.Text)
End Function
要对这个代码加些什么才能在[]中写文字也不影响后一单元格汇总呢
回复
tdcq123 2008-02-22
怪呀,这个贴子我昨天已经结了,为何今天还是不结状态。
回复
tdcq123 2008-02-22
CreateObject 当然无需引用了,当然本机需要有相关对象的应用程序

像楼主提到的那个ScriptControl XP系统里都有的,只要没有特意删除
----------------------------------------------

以上是别的网友对我的问题的回复,我想问的是:
假如别的机器上没有相关对象的应用程序呢,此时就会出现“创建对象失败”的现象呀,但是如果我“引用”了,是不是就一定可以保证对象创建成功呢?
举例:ScriptControl组件,恰巧被用户删除了。当安装我的程序后,由于我引用了scriptcontrol,是不是我的程序就能保证createobject()执行成功呢?
回复
of123 2008-02-20
为了有把握,还是要引用一下。除非像 Script Host 这样的东西。

如果你的工程不是 Copy 来的,你要用什么对象,来源于什么库,你当然知道。
回复
dingyanwei 2008-02-20
在用createobject()方法创建对象时,可以捕获出错信息

如果err.number=0 则成功,否则失败

office创建对象,可以在工程中引用也可以不引用,只是creat的方法不同而已。
回复
tdcq123 2008-02-20
自已顶一下。
回复
tdcq123 2008-02-20
谢谢上面两位老师,再问一下:
是不是只要可能用createobject()方法创建对象,那么这个对象类一定是操作系统中事先已经注册好了的。
否则的话,就不能用createobject()的方法来注册呢?
说到这里又有点不明白了。
比如office中的对象,也可以用createobject来创建,但是这些对象是不是必须要引用呢?因为如果某台机器不安装office就不会有需要创建的类呀,那么用createobject()创建对象就不会成功呀?
如果是这样的话,我又如何判断我想用createobject方法创建的对象,是不是操作系统已经内置,是不是已经注册好了呢?
我是新手,真是有点不明白,请老师耐心指教,谢谢了。
回复
z_wenqian 2008-02-20
不需要引用,系统内置,就像Scripting一样。
回复
of123 2008-02-20
非也。这是所谓“后绑定”技术。

例如,你所引用的 ScriptControl 是操作系统中公用的。事先已经注册了。
如果你用后绑定记录创建的是 MS Office 产品的对象,就需要注意,在打包时要包含文件和注册项(比如用 VB 自带的打包工具,就要事先引用相应的库,否则,打包工具是不会扫描这样的安装项的)。如果你没有打包,目标机又恰好没有安装相应的产品,软件运行时就会出现“对象不能创建”错误。

所说的“不必担心”仅仅是针对你的MSScriptControl.ScriptControl.
回复
tdcq123 2008-02-20
不必担心,凡是采用此技术创建对象的,必是操作系统内置了库的。除非用户禁止了此库。
------------------------------
再问一下,createobject()的作用,是不是类似于随机注册呢?即随用随时注册dll,用完后就取消注册呢?
因为在vb中引用,本身就是一种注册操作呀,但是不在vb中引用,注册的功能谁来做呢?
谢谢再。
回复
of123 2008-02-20
不必担心,凡是采用此技术创建对象的,必是操作系统内置了库的。除非用户禁止了此库。
回复
tdcq123 2008-02-20
不用引用的,你需要了解下CreateObject.
------------------------------
无需引用,但是程序执行到 createobject时,要创建对象,这时一需要一些支持文件呀,
我是问这些支持文件是什么呢?我担心不引用,但是程序移到别的机器上时,会无法创建对象呀?
回复
Kimm2009 2008-02-20
不用引用的,你需要了解下CreateObject.
回复
相关推荐
发帖
VB基础类
创建于2007-09-28

7492

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2008-02-20 01:54
社区公告
暂无公告