Si aún no ha conseguido que funcione es que no ha puesto mucho interes.
¿has mirado la fecha del mensaje?
En fin, te daré mi opinión por si te sirve de algo.
El problema de no haber apellido materno lo solucionas añadiendo esta línea al comienzo de la función:
If Trim$(AMATERNO_AUX) = "" Then AMATERNO_AUX = "X"
no me he parado a buscar el fallo, si lo hay.
El problema de CONVERT es que el código está traducido de otro lenguaje al VB y esa línea es del lenguaje anterior, que no ha sido anulada. Anúlala y ya está.
Lo de que no te tome la segunda letra del primer apellido, a mi no me ha pasado.
Lo de las palabras inconvenientes está anulado pero no traducido a VB.
Como dices, la función se llamaría enlazando los valores.
Lo suyo sería poner 4 textbox y un botón y un código como:
Código :
Ver originalPrivate Sub Command1_Click()
MsgBox "RFC = " & calcular_rfc(Text1.Text, Text2.Text, Text3.Text, Text4.Text)
End Sub
Que se dé bien.