以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  页眉中字符串用变量替换时出现错误  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=172930)

--  作者:tld
--  发布时间:2021/11/7 22:22:00
--  页眉中字符串用变量替换时出现错误
老师好.我想将 页眉中的 [委托编号] 字符串 用 变量  wtbh 来替换.执行下面的代码(从论坛找到的代码)时,出现错误:

Dim wtbh As String = tb1.Current("委托编号")
Dim tm As String  = ProjectPath & "Attachments\\报告首页模板\\" & mb  \'指定模板文件
Dim fl As String = "e:\\报告\\" & wtbh & ".docx" \'指定目标文件
Dim wrt As New WordReport(tb2,tm,fl) \'定义一个WordReport

wrt.Build() \'逐行生成报表
wrt.Show() \'显示报表

Dim app As New MSWord.Application
try

    Dim doc As Object = app.Documents.Open(fl)
   
    app.ActiveWindow.ActivePane.View.SeekView = MSWord.WdSeekView.wdSeekCurrentPageHeader
    app.ActiveWindow.Selection.WholeStory
    If app.ActiveWindow.Selection.Find.Execute("[委托编号]")  Then
        app.ActiveWindow.Selection.TypeText(Text:= wtbh)
    End If
    app.ActiveWindow.ActivePane.View.SeekView =  MSWord.WdSeekView.wdSeekMainDocument
   
    app.Visible = True
catch ex As exception
    msgbox(ex.message)
    app.Quit
finally
    \'app.Quit
End try
---------------------------------  错误信息如下  -------------------------
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2021.5.29.1
错误所在事件:窗口,报告,B合成报告,Click
详细错误信息:
无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。此操作失败的原因是对 IID 为“{00020970-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错。 (异常来自 HRESULT:0x80029C4A (TYPE_E_CANTLOADLIBRARY))。

我需要的功能如何实现?   谢谢老师

[此贴子已经被作者于2021/11/7 22:37:02编辑过]

--  作者:有点蓝
--  发布时间:2021/11/7 22:25:00
--  
和变量没有关系。卸载office,重新安装,需要安装完整版的。如安装64位的还是有问题,就安装32位的office

如果安装了lwps,也先看看这个:http://www.foxtable.com/webhelp/topics/3735.htm



--  作者:tld
--  发布时间:2021/11/7 22:39:00
--  
我的是office2007,是全部安装


--  作者:有点蓝
--  发布时间:2021/11/7 22:48:00
--  
wrt.Show()
改为
wrt.quit

--  作者:tld
--  发布时间:2021/11/7 23:34:00
--  
老师, 我用msgbox检查了一下 , 是执行Dim wrt As New WordReport(tb2,tm,fl)  时出错.  我新安装的 office2007,全部安装

出现错误之前我进行了如下操作:
1 重新安装了office 2007
2 升级了foxtable
3 添加了try -----之后的代码

在进行上述操作之前 , 代码可以正常运行 
[此贴子已经被作者于2021/11/7 23:50:39编辑过]

--  作者:tld
--  发布时间:2021/11/8 8:30:00
--  
老师好。上述代码我在 另一台电脑运行没有问题。是我的office问题。但是,我安装的时候选择的是“从本机运行所有程序”,还是不行。是不是缺少什么插件?我该怎么办呢?谢谢了!
--  作者:有点蓝
--  发布时间:2021/11/8 8:47:00
--  
先卸载office,再重新安装。注意安装32位的。如果还不行就换个版本比如office2010、2013