我们正在公司使用一套Excel文档。 这些档案中载有一种VBA应用程序,利用了<条码>mcomct2.ocx图书馆(姓名:<条码>第12thView和<条码>
There appears to be 2 groups of machines:
- Group A: I can create a Excel file containing
MonthView
on such machine and work with it on any Group A PC. But when I try to open this file on any machine from Group B, I m getting a Could not load an object because it is not available on this machine error. However, files with the same ActiveX created on Group B machines work normaly on A machines. - Group B: File with an ActiveX in question created on these machines work everywhere (i.e. on any A and B machine). But, as I said earlier, B machines give the error mentioned above when the file with ActiveX saved on A machine is opened.
在一句话中:在机器上制作的、仅就其他A页材料制作的档案,在B点工作上制作的档案<>!
The strangest thing here is that every machine has mscomct2.ocx
registered (once again: I can create the form with the MonthView
on any machine in question!). The .ocx
itself is in place on each machine and the whole set of registry keys is present (CLSIDs for controls classes, IIDs, typelib ID...). In addition, the data in these registry keys seem to be the same on A and B group machines (GUIDs, ProgIDs, versions etc.). There are slight differences in description strings (values like "Microsoft MonthView Control 6.0 (SP6)") on some machines but this does not seem to affect the situation (some machines in B group have such descriptions different but files created on them still work everywhere).
自然,由于Murphy公司的法律,I号机器将这些Excel文件存放在A组,因此此处所节省的档案无法使用B机器......
The OS and Excel versions don t seem to affect the situation. For example, one of B machines is working under Win 7 64 bit (Excel 2007), while most others group A and B machines are Win XP Prof (32 bit) SP3, with Excel 2003 installed. So it seems that OS and Excel versions don t affect compatibility and the problem is somehow connected with ActiveX.
我发现的A组和B组之间唯一与X有关的差异是:<编码>>>mcomct2.ocx:至少有几台A机器有6.1.x.x,而B组有6.x.x。 我看不出这种差异如何造成问题(活性X毕竟是COM物体,根据登记的关键价值,在所有情形下,暴露的类型、物体和界面似乎都相同)。 然而,我试图用6.x.x.x.版本取代我6.1.x.x。 我所做的是:
regsvr32 /u mscomct2.ocx
- completed successfully- Replaced the
mscomct2.ocx
with file of 6.0.x.x version regsvr32 mscomct2.ocx
- completed successfully
在采取这些步骤之后,我试图以单一表格填写Excel文档,其中包含MonthView
。 但是,当我试图以我的形式进行控制时,我会发现一个带有错误的信息箱。 未登记的班级<>。 这确实令人奇怪,导致所有事项似乎都得到登记:控制类别、接口、类型(即,我对登记处进行了核实)。 但仍然存在错误。
之后,我再次采用未经许可的/替代/登记程序,回到原来的6.1.x.x档案。 这使我回到原来的SNAFU局势: 我可以再次安装主动X,以安装和使用,但B组的机器在我机器保存的档案上仍有错误。
我假定,具有活性X可携性文档的问题和<代码>ocx的登记问题有些关联,但我看不出如何。 也许还有一些额外要求,在我不知道的Excel VBA中注册一台活性X。
我唯一需要的是把活性X物体与其它机器相容,混入我的Excel文档。 谁能帮助我?