Foxtable(狐表)用户栏目专家坐堂 → 获取EXCEL单元格的值一直报错


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

主题:获取EXCEL单元格的值一直报错

帅哥,在线噢!
9EQ98
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:486 积分:4427 威望:0 精华:0 注册:2014/1/16 16:55:00
获取EXCEL单元格的值一直报错  发帖心情 Post By:2024/5/11 9:36:00 [只看该作者]

请问:下述报错如何修改语句代码 ?

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(输出文件)
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim Rg_Use As MSExcel.Range = Ws.UsedRange
MessageBox.Show(Rg_Use.Rows.Count & "  " & Rg_Use.Columns.Count & "  " & Rg_Use.Count)
For i As Integer = 1 To Rg_Use.Rows.Count
    For j As Integer = 1 To Rg_Use.Columns.Count
        Dim Rg_val As MSExcel.Range = Ws.Cells(i, j)
        'Dim rg_v As String = Rg_val.Value.ToString ' 出错语句
        MessageBox.Show(rg_val.Value.ToString)  ' 这里不出错
        If Rg_val.Value.ToString <> "" AndAlso rg_val.Value.ToString.Contains("|") Then ' 出错语句
            MessageBox.Show(rg_val.Value.ToString)
        End If 
    Next
Next

图片点击可在新窗口打开查看

图片点击可在新窗口打开查看

图片点击可在新窗口打开查看



 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

 If Rg_val.Value isnot nothing AndAlso rg_val.Value.ToString.Contains("|") Then ' 出错语句

 回到顶部
帅哥,在线噢!
9EQ98
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:486 积分:4427 威望:0 精华:0 注册:2014/1/16 16:55:00
  发帖心情 Post By:2024/5/11 9:53:00 [只看该作者]

Dim rg_v As String = Rg_val.Value.ToString

请问:这个语句如何修改 ?

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

 If Rg_val.Value isnot nothing 
Dim rg_v As String = Rg_val.Value.ToString
……


 回到顶部
帅哥,在线噢!
9EQ98
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:486 积分:4427 威望:0 精华:0 注册:2014/1/16 16:55:00
  发帖心情 Post By:2024/5/11 12:37:00 [只看该作者]

                        If 换行 = True AndAlso Rg_Val_Str.Contains(换行符) Then
        Dim Rg_Use As MSExcel.Range = Ws.UsedRange
        For i As Integer = 1 To Rg_Use.Rows.Count
            For j As Integer = 1 To Rg_Use.Columns.Count
                Dim Rg_val As MSExcel.Range = Ws.Cells(i, j)
                Dim Rg_Val_Str As String = ""
                If Rg_val.Value IsNot Nothing Then
                    Dim 行 As String = "行: " & I & "(" & RG_VAL.Row & ")"
                    Dim 列 As String = "列: " & j & "(" & RG_VAL.Column & ")"
                    Rg_Val_Str = Rg_val.Value.ToString()
                    If Rg_Val_Str > "" Then
                        
                        If 换行 = True AndAlso Rg_Val_Str.Contains(换行符) Then
                            Dim VS As String = Rg_Val_Str.Replace(换行符, vbCrLf)
                            Try
                                Rg_val.Value = VS
                            Catch ex As Exception
                                MessageBox.Show( 行 & vbCrLf & 列 & vbCrLf & VS, "自动换行符错误")
                            End Try
                        End If
...

Rg_val.Value = VS  ' 执行这个语句还是会报错,请问为什么?

图片点击可在新窗口打开查看

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106801 积分:543206 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/5/11 13:59:00 [只看该作者]

请提供实例测试

 回到顶部