Tengo algunos datos en Excel donde una columna contiene valores de texto del formulario
vr, 1-07-2022
do, 21-07-2022
como puede ver, el número del día no contiene ceros a la izquierda. Necesito reemplazar las cadenas de fecha en esta columna para que todos los días se escriban como dos dígitos, por lo que los días de un solo dígito deben tener un cero inicial.
Intenté hacer esto usando expresiones regulares, pero tengo problemas para que funcionen las referencias inversas.
Estoy usando la siguiente macro:
Function FindReplaceRegex(rng As Range, reg_exp As String, replace As String) Set myRegExp = New RegExp myRegExp.IgnoreCase = False myRegExp.Global = True myRegExp.Pattern = reg_exp FindReplaceRegex = myRegExp.replace(rng.Value, replace) End FunctionCreé la siguiente expresión regular para reconocer fechas con días de un solo dígito:
"\s{1}\d{1}\W{1}\d{2}\W{1}\d{4}"Necesito reemplazar toda la cadena que se ajusta a la expresión regular con el primer espacio reemplazado por un espacio + 0. Así que lo intenté así:
FindReplaceRegex(C22, "\s{1}\1\d{1}\W{1}\d{2}\W{1}\d{4}", " 0$1")donde inserté un "\1" después del espacio en la expresión regular para crear una referencia a toda la expresión regular que comienza con \d{1}... y luego traté de hacer que el valor de reemplazo lo llamara usando $1.
no funciona
Para la entrada vr, 1-07-2022 necesito una salida de vr, 01-07-2022 y para la entrada do, 21-07-2022 necesito que la salida permanezca sin cambios do, 21-07-2022 .
¿alguien puede decirme que estoy haciendo mal?