La respuesta de Julián es excelente cuando conocemos el número de caracteres a extraer, pero que pasa si es menor o mayor. Que pasa si el separador es diferente de un punto(.) Y el separador de la letra no es guion (-). He preparado esta función para que la implemente para este caso u otros.
Debe guardarla en un Módulo.
Public Function cambiar(strText As String, Optional strLetra As String, Optional strSeparadorNro As String, Optional strSeparadorletra As String) As String
'Función para cambiar el formato del texto del DNI o número
'separado por un carácter cualquiera terminando en letra
'separada del número por cualquier carácter
'Elaborado por:
'eduardo perez fernández
'01/04/2020 Para TodoExpertos
'Ejemplos de llamada
¿ '? Cambiar("34.025.525-X","X",".","-")
'Retorna:
' 34025525
¿ '? Cambiar("34.025.5-X","X",".","-")
'Retorna:
' 340255
¿ '? Cambiar("34.025.525.235-X","X",".","-")
'Retorna:
' 34025525235
¿ '? Cambiar("34.025-W","W",".","-")
' Retorna:
' 34025
'NOTA: El texto puede contener cualquier cantidad de caracteres
' Si no hay separador, separador de letra y letra, queda igual
Dim strAux As String
If strSeparadorNro = "" Then 'Separador de numeros
strSeparadorNro = "."
End If
If strSeparadorletra = "" Then 'Separador de la letra
strSeparadorletra = "-"
End If
If strLetra = "" Then 'letra (último carácter)
strLetra = "X"
End If
' 1) Elimino el separador de numeros
strAux = Replace(strText, strSeparadorNro, "")
' 2) Elimino el separador de la letra
strAux = Replace(strAux, strSeparadorletra, "")
' 3) Elimino la letra
strAux = Replace(strAux, strLetra, "")
cambiar = strAux
End Function