各位专家,我用VB6调用Word时,首先添加了Word的引用(即msword9.olb),程序中有代码:Dim Wrd1 As Object   
Set Wrd1 = GetObject(, "Word.Application")第二句在office2000中没有任何问题,可以对Word实现调用,一直运行良好。最近卸了office2000,安装了officeXP,再次运行程序到这一句时,出现了“ActiveX 部件不能创建对象”的错误。我查看了一下引用,发现已自动替换成“Microsoft Word 10.0 Object Library”--msword.olb我试了一下办法,均没成功:
1。在VB6中将“Microsoft Word 10.0 Object Library”--msword.olb的引用去掉,换为“Microsoft Word 9.0 Object Library”--msword9.olb;2。重新安装原来做的安装程序,直接运行可执行程序文件(.exe),目的是注册msword9.olb;3。将语句换为Set Wrd1 = GetObject(, "Word.Application.9")  '——提示“ActiveX 部件不能创建对象”
             Set Wrd1 = GetObject(, "Word.Application.10") '——提示“ActiveX 部件不能创建对象”
             Set Wrd1 = GetObject("Word.Application")  '——提示“自动化错误”
             Set Wrd1 = GetObject("Word.Application.9")  '——提示“自动化错误”
             Set Wrd1 = GetObject("Word.Application.10")  '——提示“自动化错误”
   均通不过;请问各位高手,为什么在Word2000下运行好好的程序,在WordXP中却会出错呢?该如何解决?
特贡献100分,在线等,谢谢。

解决方案 »

  1.   

    把你的引用换成Word 10.0就可以了
      

  2.   

    //请问各位高手,为什么在Word2000下运行好好的程序,在WordXP中却会出错呢?该如何解决?估计是类名变化造成的
    另外,既然引用了word对象,为什么还用GetObject进行绑定?
    建议这样:
    dim Wrd1 As word的Application类的类名(用对象浏览器查看获得)
    set  Wrd1 = new word的Application类的类名
      

  3.   

    rainstormmaster(暴风雨 v2.0),我也用过set Wrd1 = New Word.Application ,该句不出错,但是后来我想用Word显示一篇文章,如:
       Set Wrd1 = GetObject("D:\programm file\temp.doc")
       Wrd1.Application.Visible = True还是要用到GetObject(),还是要出错,怎么办呢?
      

  4.   

    //还是要用到GetObject(),还是要出错,怎么办呢?晕,你好好看看MSDN,改成这样:    Dim Wrd1 As Word.Application
        Set Wrd1 = New Word.Application
        Wrd1.Application.Documents.Open FileName:="e:\test.doc"
        Wrd1.Visible = True
      

  5.   

    这里有帮助:
    http://www.microsoft.com/china/msdn/archives/technic/tips/msword.asp