Foxtable(狐表)用户栏目专家坐堂 → 页眉中字符串用变量替换时出现错误


  共有3988人关注过本帖树形打印复制链接

主题:页眉中字符串用变量替换时出现错误

帅哥哟,离线,有人找我吗?
tld
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:739 积分:7694 威望:0 精华:0 注册:2017/2/3 10:29:00
页眉中字符串用变量替换时出现错误  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/7 22:25:00 [只看该作者]

和变量没有关系。卸载office,重新安装,需要安装完整版的。如安装64位的还是有问题,就安装32位的office

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



 回到顶部
帅哥哟,离线,有人找我吗?
tld
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:739 积分:7694 威望:0 精华:0 注册:2017/2/3 10:29:00
  发帖心情 Post By:2021/11/7 22:39:00 [只看该作者]

我的是office2007,是全部安装


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/7 22:48:00 [只看该作者]

wrt.Show()
改为
wrt.quit

 回到顶部
帅哥哟,离线,有人找我吗?
tld
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:739 积分:7694 威望:0 精华:0 注册:2017/2/3 10:29:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:739 积分:7694 威望:0 精华:0 注册:2017/2/3 10:29:00
  发帖心情 Post By:2021/11/8 8:30:00 [只看该作者]

老师好。上述代码我在 另一台电脑运行没有问题。是我的office问题。但是,我安装的时候选择的是“从本机运行所有程序”,还是不行。是不是缺少什么插件?我该怎么办呢?谢谢了!

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/8 8:47:00 [只看该作者]

先卸载office,再重新安装。注意安装32位的。如果还不行就换个版本比如office2010、2013

 回到顶部