Foxtable(狐表)用户栏目专家坐堂 → 这样的问题如何理解?:被呼叫方拒绝接收呼叫。


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

主题:这样的问题如何理解?:被呼叫方拒绝接收呼叫。

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


加好友 发短信
等级:四尾狐 帖子:939 积分:6588 威望:0 精华:0 注册:2008/8/31 22:52:00
这样的问题如何理解?:被呼叫方拒绝接收呼叫。  发帖心情 Post By:2019/9/13 13:32:00 [只看该作者]

我的代码在运行过程中,有时会出现这样的问题:

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2019.9.1.1
错误所在事件:窗口,窗口1,Button04,Click
详细错误信息:
被呼叫方拒绝接收呼叫。 (异常来自 HRESULT:0x80010001 (RPC_E_CALL_REJECTED))

程序代码如下:
If str.Contains(",") = False And str.Contains("*") = True Then
                        s1 = str.split("*")
                        dyg = "C" & CStr(row1+1) &":" & Tables("大纲级别").rows(s1(1)+1)(6) & CStr(row1+s1(0)) '合成地址
                        _app1.worksheets(bm).range(dyg).copy '复制
                        _app.Selection.Collapse (Direction:=msword.WdCollapseDirection.wdCollapseStart)
                        _app.selection.paste '粘贴
                        ClipBoard.Clear '清空剪贴板
end if

上述代码的意思是从EXCEL中复制表格,粘贴到WORD中,这是一个For To  next  中的一节,全部执行完会粘贴100多个表格,200多小段文字。
有时运行到_app.selection.paste '粘贴   之前会出现上述错误提示。
我到EXCEL文档中看到,目标单元格已被复制了(屏幕显示),但是无法粘贴到WORD中的当前插入点。
而当前插入点在上一个For To  next 循环中,是这样处理的:
                _app.Selection.Typeparagraph ‘插入新段落
                _app.Selection.ParagraphFormat.OutlineLevel = 10 ’大纲级别为正文

关键是上面的代码大部分时候运行正常,程序会不停地在WORD的新段落中写入文字和表格。但只要一出错,就是上面的提示,而且在EXCEL中看那个表已经被复制了,只是无法粘贴到WORD中,整个循环中断。

需要说的是:错误只会出现在粘贴表格时。

大家有这方面的经验吗?希望能指点下?

谢谢!

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


加好友 发短信
等级:四尾狐 帖子:939 积分:6588 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2019/9/13 21:00:00 [只看该作者]

自己顶下!

注:
上面代码中的_app、_app1,是全局代码中定义的:
Public _app As MSWord.Application '定义一个WORD对象
Public _app1 As MSExcel.Application '定义一个EXCEL对象

上面的代码用来操作WORD和EXCEL,并将他们与FOXTABLE中的数据直接联系起来。


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


加好友 发短信
等级:四尾狐 帖子:939 积分:6588 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2019/9/13 22:35:00 [只看该作者]

我研究了下,已解决,代码修改为:
try
                        _app1.worksheets(bm).range(dyg).copy '复制
                        _app.selection.paste '粘贴
                        ClipBoard.Clear '清空剪贴板
                        Catch ex As Exception
                        System.Threading.Thread.Sleep(1000)
                        _app1.worksheets(bm).range(dyg).copy '复制
                        _app.selection.paste '粘贴
                        ClipBoard.Clear '清空剪贴板
end try

意思是如果出错,不出现窗口,且程序停1秒,等呼叫,再执行。
我看到有时程序停了一秒,就能执行了。

 回到顶部