If there is the possibility that the cell is Nothing, do not try to apply the ToString(), instead assign the Value property and then test against Nothing and then using the OrElse operator against an empty string
If (e.ColumnIndex = 0) Then 'checking numeric value for column 1 only
Dim cellData = DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value
if cellData Is Nothing OrElse IsDBNull(cellData) OrElse cellData.ToString = String.Empty Then
MessageBox.Show("Please Enter a Value")
Exit Sub
End If
Dim value = cellData.ToString()
For Each c As Char In value
......