我写了一个Excel的xla插件,需要分发给客户,并且让excel以后每次加载.
这样我需要做三件事:
1.把xla文件拷到excel的add-in目录
2.在注册表中注册这个xla
3.在excel中加载前两步我可以用vb写一个exe来完成.但是第3步应该怎么做呢?此外,有没有什么其他更为便捷的方式?比如说安装软件之类的?

解决方案 »

  1.   

    Dim oXL As Object, oAddin As Object
    Set oXL = CreateObject("Excel.Application")
    oXL.Workbooks.Add
    Set oAddin = oXL.AddIns.Add("C:\test.xla", True)
    oAddin.Installed = True
    oXL.Quit
    Set oXL = Nothing
    运行一次即可.
      

  2.   

    在你用vb写的exe里面运行一下1楼的代码就可以了。
    【注意引用 exel library 】
    '-----------
    Dim oXL As Object, oAddin As Object 
    Set oXL = CreateObject("Excel.Application") 
    oXL.Workbooks.Add 
    Set oAddin = oXL.AddIns.Add("C:\excel的add-in目录\test.xla", True) 
    oAddin.Installed = True 
    oXL.Quit 
    Set oXL = Nothing 
      

  3.   

    这个不是late binding么,不用excel的lib啊
      

  4.   

    我在Set oAddin = oXL.AddIns.Add(FileName,True)时遇到错误:1004 (不能取得类AddIns的Add属性) 
    为什么呢?同样的代码,为什么我就不行呢
      

  5.   


    你要確定"c:\test.xla"文件存在,否則會出現此錯誤!
      

  6.   

    存在,不过我那个是dll文件,应该没问题吧?
      

  7.   

    存在,不过我那个是dll文件,应该没问题吧?
      

  8.   


    那我要想替用户加载dll插件,就只能手工写注册表了对吧?
    写在注册表哪里呢?能给个代码么?
    谢谢了!
      

  9.   

    还没有搞定啊,
    你把下面的代码放到vb 的一个sub 里面。Dim oXL As Object, oAddin As Object 
    Set oXL = CreateObject("Excel.Application")'因为是CreateObject出来的就要求客户端电脑要有安装有execl
    oXL.Workbooks.Add 
    Set oAddin = oXL.AddIns.Add("C:\excel的add-in目录\test.xla", True) 
    oAddin.Installed = True 
    oXL.Quit 
    Set oXL = Nothing 
    '另外注意客服端的 test.xla 的文件是否存在。试一试看看,vb里面可以直接create 出excel程序的,所以应该可以的。如果不行,建议你:
    dim oxl as excel.application ''这个就要引用excel lib了。
      

  10.   

    后来我把xla改写成dll了
    是不是只能写注册表了啊
    能再帮忙给段代码么