Foxtable(狐表)用户栏目专家坐堂 → 错误提示:被呼叫方拒绝接收呼叫


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

主题:错误提示:被呼叫方拒绝接收呼叫

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


加好友 发短信
等级:五尾狐 帖子:1107 积分:10574 威望:0 精华:0 注册:2014/2/19 16:32:00
错误提示:被呼叫方拒绝接收呼叫  发帖心情 Post By:2016/1/19 16:55:00 [只看该作者]

以下代码做为一个自定义函数,执行的时候报错:被呼叫方拒绝接收呼叫见截图


图片点击可在新窗口打开查看此主题相关图片如下:333337.jpg
图片点击可在新窗口打开查看

Dim path As String = args(0)
Dim excelApp As New MSExcel.Application
excelApp.visible =True
excelApp.DisplayAlerts=False

Dim wordApp As New MSWord.Application
wordapp.Visible = True
Dim Doc As MSWord.Document
Dim DocRange As MSWord.Range
Doc = wordApp.Documents.Add()
Docrange = Doc.range()
Dim filename As String = path & "\统计.docx"
For Each file As String In FileSys.GetFiles(path)
    If file.EndsWith(".xls") OrElse file.EndsWith(".xlsx") Then
        Dim Wb As MSExcel.WorkBook=excelApp.WorkBooks.open(file)
        
        
        For k As Integer = 1 To Wb.WorkSheets.Count  '//多个sheet的处理
            Dim Ws As MSExcel.WorkSheet=Wb.WorkSheets(k)
            Dim Rg As MSExcel.Range = Ws.UsedRange
            If Rg.Columns.Count <> 16384 Then
                Rg.copy()
                DocRange.Paste
                Docrange.Collapse(0)
                Docrange.Insertparagraphafter()
                Docrange.Collapse(0)

            Else
                Dim txt2 As WinForm.TextBox = Forms("EXCEL导WORD").Controls("TextBox6")
                txt2.text = file & vbcrlf & txt2.text & vbcrlf
            End If
        Next
        wb.close()
        
        Dim txt1 As WinForm.TextBox = Forms("EXCEL导WORD").Controls("TextBox3")
        txt1.text = file & vbcrlf & txt1.text & vbcrlf
        Application.DoEvents()
        FileCount=FileCount+1
    End If
Next

For Each p As String In FileSys.GetDirectories(path)
    Functions.Execute("EXCEL导WORD函数", p)
Next
Doc.saveas(filename)
Doc.close()

excelapp.quit()
wordapp.quit()
Dim lbl As WinForm.Label = Forms("EXCEL导WORD").Controls("Label6")
lbl.Text="共处理" & FileCount & "个文件"

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/19 16:59:00 [只看该作者]

试试

 

Dim Ws As MSExcel.WorkSheet=Wb.WorkSheets(k)

ws.Select

Dim Rg As MSExcel.Range = Ws.UsedRange
 
不行,就上传具体例子测试。
 

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


加好友 发短信
等级:五尾狐 帖子:1107 积分:10574 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2016/1/20 11:35:00 [只看该作者]

上传例子:程序偶尔会执行正确,偶尔就会报错,我找不到规律。麻烦老师给看看:

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.rar

[此贴子已经被作者于2016/1/20 11:34:54编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/20 11:38:00 [只看该作者]

测试了,不报错。肯定是你MS Office安装有问题,卸载重装完整版的。


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


加好友 发短信
等级:五尾狐 帖子:1107 积分:10574 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2016/1/20 14:39:00 [只看该作者]

麻烦您反复测试一下,多点几次。我这里安装的是OFFICE2016正版。


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


加好友 发短信
等级:五尾狐 帖子:1107 积分:10574 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2016/1/20 14:39:00 [只看该作者]

只有多点几次他就会报那个错,好像EXCEL中的SHEET一多就出错。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/20 14:44:00 [只看该作者]

点多少次我也没测试出错。

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


加好友 发短信
等级:五尾狐 帖子:1107 积分:10574 威望:0 精华:0 注册:2014/2/19 16:32:00
  发帖心情 Post By:2016/1/20 14:59:00 [只看该作者]

看论坛的贴子好像在其中一行加MessageBox.show()中断一下就不报错,是不是程序没有执行完?

 

For k As Integer = 1 To Wb.WorkSheets.Count  '//多个sheet的处理

            Dim Ws As MSExcel.WorkSheet=Wb.WorkSheets(k)
            Dim Rg As MSExcel.Range = Ws.UsedRange
            If Rg.Columns.Count <> 16384 Then
                Rg.copy()
                MessageBox.show("提示信息") '在粘贴之前加了一个中断就不会报错。
                DocRange.Paste
                Docrange.Collapse(0)
                Docrange.Insertparagraphafter()
                Docrange.Collapse(0)

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/20 15:26:00 [只看该作者]

Dim Ws As MSExcel.WorkSheet=Wb.WorkSheets(k)

ws.Select

Dim Rg As MSExcel.Range = Ws.UsedRange

Rg.Select

 

改一下,如果还报错。说明,就是你MS Office的问题


 回到顶部