在VBA中,在調(diào)用控件前寫入shell?+注冊(cè)控件語句。
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比察哈爾右翼后網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式察哈爾右翼后網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋察哈爾右翼后地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。
如果我理解正確的話,有下列方法
方法一:在VBA模塊中加入Shell("regsvr32.exe /s " strSystemFolder "Winsock.ocx")?? 自己改一下變量。本人較早前用過的方法。
方法二:將所有注冊(cè)組件寫進(jìn).bat批處理文件中,并加入開機(jī)自動(dòng)運(yùn)行,或用shell去運(yùn)行.bat
方法三:微軟官方support
最后一段簡(jiǎn)單翻譯一下:RegComCtl32和UnRegComCtl32是用戶自定義名稱;例中組件是默認(rèn)在windows/system路徑下,如果不在該路徑下,請(qǐng)自己添加;DllRegisterServer注意字母大小寫。
參看下面的代碼
Public?Sub?main()
Dim?str?As?String?=?Application.StartupPath??"\videocapx.ocx"
Shell("regsvr32.exe?/s?"""??str??"""",?AppWinStyle.NormalFocus)'這里如果文件名包含空格,需要把整個(gè)文件名用雙引號(hào)引起來哦,切記
Application.Run(New?Form1)
End?Sub
這個(gè)問題經(jīng)常碰到,需要借助外部工具才可以
1,使用優(yōu)化大師,在系統(tǒng)清理中的Active清理功能里,點(diǎn)分析后然后修復(fù)能改大部分的這種問題,但有一些難纏的控件就需要用另一個(gè)軟件了。
2,CCleaner,這個(gè)和優(yōu)化大師差不多一樣的操作,但比大師的功能要強(qiáng)。
不出意外,肯定能解決你的問題。
如提示,請(qǐng)注冊(cè)你調(diào)用的外部控件。 注冊(cè)win+R, 寫入regsvr32 "帶完整路徑的文件",回車