深圳office培训 深圳excel培训
深圳excel培训 深圳office培训
咨询服务
深圳office培训
深圳office培训
office培训
excel培训
ppt培训
vba培训
access培训
word培训
visio培训
project培训
outlook培训
数据库培训
深圳access培训
深圳sql培训
深圳office培训
 

vba如何注册控件


2016年8月11日 作者: 来源:

Excel文件中如果有ActiveX控件如日期时间控件(Microsoft Date and Time Picker Control 6.0,简称DTP控件),在有些电脑上运行时会出现“无法装载这个对象,因为它不适于这台计算机”的提示。文件中的控件丢失,无法正常使用。
这是因为DTP控件没有注册引起的,解决办法是在能运行该控件的电脑中复制DTP控件的文件到目标电脑中进行注册。在VBE窗口中右键单击“工具箱”,选择“附加控件”,在“附加控件”对话框中选择DTP控件,对话框底部会显示控件的名称和文件所在的路径。
DTP控件的文件名为MSCOMCT2.OCX,在C盘的Windows\system32文件夹中,把该文件复制到目标电脑C盘的Windows\system32文件夹中,单击“开始”→“运行”,在“运行”对话框中键入“regsvr32 C:\Windows\system32\MSCOMCT2.OCX”,注册成功,DTP控件即能正常使用。
在Excel中可以使用程序代码进行自动注册,代码如下:
#001  Sub regsvrs()
#002      Dim SouFile As String
#003      Dim DesFile As String
#004      On Error Resume Next
#005      SouFile = ThisWorkbook.Path & "\MSCOMCT2.OCX"
#006      DesFile = "c:\Windows\system32\MSCOMCT2.OCX"
#007      FileCopy SouFile, DesFile
#008      Shell "regsvr32 /s" & DesFile
#009      MsgBox "DTP控件已成功注册,现在可以使用了!"
#010  End Sub
代码解析:
Regsvrs过程将保存在同一目录中的MSCOMCT2.OCX文件复制到电脑的文件夹中,使用Shell函数注册DTP控件。
第4行代码,错误处理语句,用于忽略复制文件时可能出现的错误。因为如果电脑文件夹中已存在MSCOMCT2.OCX文件,使用FileCopy方法复制时会发生错误。
第7行代码,使用FileCopy方法复制MSCOMCT2.OCX文件到电脑中。
FileCopy方法的语法如下:
FileCopy source, destination
参数Source是必需的,字符串表达式,用来表示要被复制的文件名。
参数destination是必需的,字符串表达式,用来指定要复制的目的文件名。
第8行代码,使用Shell函数注册DTP控件。
Shell函数执行一个可执行文件,语法如下:
Shell(pathname[,windowstyle])
参数pathname是必需的,要执行的程序名,以及任何必需的参数或命令行变量,可能还包括目录或文件夹,以及驱动器。
参数windowstyle是可选的,表示在程序运行时窗口的样式。windowstyle参数值如下表所示。
常量            值 描述
vbHide            0 窗口被隐藏,且焦点会移到隐式窗口。常数vbHide在Macintosh平台不可用。
VbNormalFocus    1 窗口具有焦点,且会还原到它原来的大小和位置。
VbMinimizedFocus   2 窗口会以一个具有焦点的图标来显示。
VbMaximizedFocus   3 窗口是一个具有焦点的最大化窗口。
VbNormalNoFocus    4 窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。
VbMinimizedNoFocus 6 窗口会以一个图标来显示。而当前活动的的窗口仍然保持活动。
运行程序前应确保在工作簿同一目录中存在MSCOMCT2.OCX文件。此代码相当于在“运行”对话框中键入“regsvr32 C:\ Windows\system32\MSCOMCT2.OCX”后进行注册,只是在“REGSVR32”后加上了s参数。
可以使用程序代码卸载该控件,代码如下:
#001  Sub regsvru()
#002      Shell "REGSVR32 /u " & ThisWorkbook.Path & "\MSCOMCT2.OCX"
#003  End Sub
代码解析:
Regsvru过程使用Shell函数注册DTP控件,在pathname参数“REGSVR32”后加上u参数,对DTP控件进行反注册。


阅读:2038 上一则:vba如何使用RefEdit控件选择区域 下一则:vba中的非模式窗体

返回前页 返回顶部
温馨提示:本中心是深圳较为专业office培训机构、咨询及报名请先预约,电话:0755-82124110。
深圳地址:深圳红荔路四川大厦1109B-1110(3号龙岗线通新岭地铁站A出口10米)
热线:0755-82124110(福田、南山、宝安) 0755-22205758(罗湖、龙岗、龙华) 13510024571(东莞、惠州、珠海、广州)
北京地址:北京清华大学华业大厦三区三楼 版权所有:深圳万博计算机教育 粤ICP备11006947号-1
 
深圳信息系统项目管理师培训
深圳信息系统项目管理师培训 欢迎咨询!
您好!请点击这里咨询万博教育
深圳万博吴老师
您好!请点击这里咨询万博教育
深圳万博史老师
 
深圳信息系统项目管理师培训
深圳信息系统项目管理师培训