很感谢。不过我自己解决它了。
Select Case e.Col.Name
Case "Code"
For Each r As Row In e.Table.Rows
Dim Values() As String = r("Code").split(".")
If Values.Length = 1 Then
r.DataRow.SetError("Code","")
Else
Dim cscode As String = "" '个人认为问题出在这里,因为下一次遍历的时候,它会已经存在值。开始遍历的时候给它赋空值,就可以了。
For i As Integer = 0 To Values.Length - 2
cscode = CSCode & "." & Values(i)
Dim cs As Integer = e.Table.FindRow(" Code = '" & CSCode.trim(".") & "'",e.Table.Position + 1 ,True )
If cs < 0 Then
r.DataRow.SetError("Code", "上级节点编号规则有误,请检查重新输入!")
Exit For
Else
r.DataRow.SetError("Code","")
End If
Next
End If
Next
End Select