Here is what I think you are looking for.
Protected Sub GridStoredProcs_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles grdStoredProcs.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.Cells(6).Text.Contains("Errors:") Then
e.Row.BackColor = System.Drawing.Color.Red
End If
Dim x As Integer = WhatColumnDoYouWant
Dim y As Integer = HowManyCharactersDoYouWant
If e.Row.Cells(x).Text.Length > y Then
e.Row.Cells(x).Text = e.Row.Cells(x).Text.SubString(0, y)
End If
End If
End Sub
Something else I think you should also do is create an enum for the columns in your grid, then instead of using numbers in code, you can use the enum. It makes more sense six months from now when you are trying to figure out what column 6 is.
Private Enum dgCols
ID = 1,
Name = 2,
SomeDate = 3
End Enum
Then when you pull from the grid you can do this...
e.Row.Cells(dgCols.Name).Text
It is easier to read in the long run, but just a suggestion