La solucion que te di funciona.
La idea era simple, lo que tenias que hacer era unos ajustes necesarios para que operara:
Ahi te va el codigo completo:
Private Sub Form_Load()
MaskEdBox1.Mask = "##.###.###-&"
cmdGuardar.Enabled = False
Text1.Text = ""
Text2.Text = ""
End Sub
Private Sub MaskEdBox1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
    Call Verifica
    Text1.SetFocus
End If
End Sub
Public Sub Verifica()
sRut = Trim(MaskEdBox1.Text)
If Es_Rut(sRut, 0) = True Then
    If Len(Text1.Text) > 0 Then
        If Len(Text2.Text) > 0 Then
            cmdGuardar.Enabled = True
        Else
            cmdGuardar.Enabled = False
        End If
    Else
        cmdGuardar.Enabled = False
    End If
Else
    cmdGuardar.Enabled = False
End If
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
    Call Verifica
    Text2.SetFocus
End If
End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
    Call Verifica
End If
End Sub
Public Function Es_Rut(ByVal X As String, ByVal Y As Integer) As Boolean
' Funcion que recibe el string con el Rut y lo analiza
' Y=0 no entrega mensaje
' Y=1 mensaje de RUT
' Y=2 mensaje de ficha
' Si  es  rut  entrega Es_Rut=True
' Si no es rut entrega Es_Rut=False
X = Trim(X)
xLargo = Len(X)
xposicion = InStr(X, "-")
If xposicion <> 0 Then
    xNumero = Format(Mid$(X, 1, xposicion - 1), "00000000")
    xdv = Mid$(X, xposicion + 1, xLargo - xposicion + 1)
    If IsNumeric(xNumero) Then
        If Len(xdv) = 1 Then
            If IsNumeric(dv) Then
                xBandera = 1
            Else
                If UCase(dv) = "K" Then
                    xBandera = 1
                Else
                    xBandera = 0
                End If
            End If
        Else
            xBandera = 0
        End If
    Else
        xBandera = 0
    End If
    If xBandera = 1 Then
        'posiciones     : 8 7 6 5 4 3 2 1
        'multiplicar por: 3 2 7 6 5 4 3 2
        xpos8 = CInt(Mid(xNumero, 1, 1))
        xpos7 = CInt(Mid(xNumero, 2, 1))
        xpos6 = CInt(Mid(xNumero, 3, 1))
        xpos5 = CInt(Mid(xNumero, 4, 1))
        xpos4 = CInt(Mid(xNumero, 5, 1))
        xpos3 = CInt(Mid(xNumero, 6, 1))
        xpos2 = CInt(Mid(xNumero, 7, 1))
        xpos1 = CInt(Mid(xNumero, 8, 1))
        xSuma = xpos8 * 3 + xpos7 * 2 + xpos6 * 7 + xpos5 * 6 + xpos4 * 5 + xpos3 * 4 + xpos2 * 3 + xpos1 * 2
        xentero = Int(xSuma / 11)
        xValor = xSuma - xentero * 11
        xresto = 11 - xValor
        Select Case xresto
            Case 0 To 9: dv = CStr(xresto)
            Case 10: dv = "K"
            Case 11: dv = "0"
        End Select
        If UCase(xdv) = dv Then
            Es_Rut = True
        Else
            Es_Rut = False
            If Y <> 0 Then
                If Y = 1 Then
                    Msg = "El rut correcto debe ser " & Format(CDbl(xNumero), "#,##0") & "-" & dv
                Else
                    Msg = "La ficha correcta debe ser " & Format(CDbl(xNumero), "#,##0") & "-" & dv
                End If
                MsgBox Msg, vbInformation, "Advertencia"
            End If
        End If
    Else
        Es_Rut = False
    End If
Else
    Es_Rut = False
End If
End Function