Buscar o validar si existe un dato en el DataGridView

Cuando un usuario está ingresando nuevos datos en un grid, muchas veces necesito validar que lo ingresado no se encuentre repetido entre los otros datos, por ejemplo el código, cédula, serie, marca, modelo, etc. Por lo que he creado una función que busca, entre todos los registros del grid, si dicho dato se repite.

Nota: Recordar que los datos nuevos que se ingresan, se hacen en la ultima fila

Private Function ExisteDatoEnGrid() As Boolean
        Dim UltimaFila As Integer
        Dim cVal as String
       
        'Obtengo la ultima fila para que no se procese hasta el final
        UltimaFila = DataGridView1.Rows.Count - 1
        'Obtengo el valor de la primera columna ingresado por el usuario
        cVal = DataGridView1.Rows(UltimaFila).Cells(0)
       
        'Para cada fila del grid
        For Each row As DataGridViewRow In DataGridView1.Rows
            'Si es la última fila, se termina la función
            If row.Index = UltimaFila Then
                Exit Function
            End If
           
            'Pregunto si el dato de la primera columna es igual a lo ingresado en
            'la ultima fila
            If System.Convert.ToString(row.Cells(0).Value) = cVal Then
                MsgBox("Este dato ya existe", MsgBoxStyle.Critical)
                ExisteDatoEnGrid = True
                Exit Function
            Else
                ExisteDatoEnGrid = False
            End If
        Next
End Function

El uso de esta función es, por ejemplo, cuando se da clic en el botón grabar.

Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
        if ExisteDatoEnGrid = True Then
                Exit Sub
        Else
                'Aquí puedo continuar
        End If
End Sub