以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  字符分段问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=105229)

--  作者:133198609
--  发布时间:2017/8/14 22:03:00
--  字符分段问题
If e.DataCol.Name = "主要专业技术工作业绩" Then
    Dim yj As String = e.DataRow("主要专业技术工作业绩")
    Select Case yj.Length
        Case 0 To 540
            e.DataRow("业绩1") = yj
        Case 541 To 1080
            e.DataRow("业绩1") = yj.SubString(0,540)
            e.DataRow("业绩2") = yj.SubString(541,1080)
        Case 1081 To 1620
            e.DataRow("业绩1") = yj.SubString(0,540)
            e.DataRow("业绩2") = yj.SubString(541,1080)
            e.DataRow("业绩3") = yj.SubString(1081,1620)
        Case 1621 To 10000
            MessageBox.Show("个人工作业绩过长,请修改或者另单独附页!")
    End Select
End If

这哪里出问题了,报错!

--  作者:有点蓝
--  发布时间:2017/8/14 22:16:00
--  
If e.DataCol.Name = "主要专业技术工作业绩" Then
    Dim yj As String = e.DataRow("主要专业技术工作业绩")
    Select Case yj.Length
        Case 0 To 540
            e.DataRow("业绩1") = yj
        Case 541 To 1080
            e.DataRow("业绩1") = yj.SubString(0,540)
            e.DataRow("业绩2") = yj.SubString(540)
        Case 1081 To 1620
            Dim first As String = yj.SubString(0,540)
            e.DataRow("业绩1") = yj.SubString(0,540)
            e.DataRow("业绩2") = yj.SubString(540,1080 - first.Length)
            e.DataRow("业绩3") = yj.SubString(1080)
        Case Else
            MessageBox.Show("个人工作业绩过长,请修改或者另单独附页!")
    End Select
End If