Solución:
No hay secuencias de escape en VBA. Utilice el incorporado vbNewLine
constante en lugar del equivalente:
hasLineBreaks = InStr(str, vbNewLine) > 0
Por MSDN, vbNewline
devuelve un Carácter de nueva línea específico de la plataforma; lo que sea apropiado para la plataforma actual, es decir:
Cr (13) + Cr (10) [on Windows] o, en Macintosh, Chr (13)
Por lo tanto, no es necesario trabajar con códigos de caracteres ASCII, ni siquiera con sus respectivas constantes integradas.
Excepto que Excel eliminará los caracteres CR del contenido de la celda y la forma, y esto no tiene nada que ver con VBA (los caracteres CR se eliminarían de todos modos y ” n” no funcionaría para leer correctamente los datos de Excel en C #, Javascript, o Python) y todo lo que tenga que ver con el contexto del origen de la cadena.
Para leer “saltos de línea” en una cadena con los caracteres CR eliminados, debe buscar linea de alimentación caracteres en la cadenavbLf
).
Pero si tu sistemáticamente tratar el linea de alimentación carácter como un final de línea, eventualmente se encontrará con problemas (especialmente entre plataformas), porque ASCII 10 por sí solo no es un salto de línea real en ninguna de las plataformas, y encontrará caracteres ASCII 13 en cadenas que pensó de los que había eliminado los saltos de línea, y seguirán funcionando correctamente en una Mac, pero no en Windows.
VBA no es C # ("n"
). Saltos de línea que encontrará en: vbCr
o vbLf
o vbCrLf
constantes.
Para obtener más información, consulte:
vbCr
vbLf
vbCrLf
[EDIT]
¡Señala la respuesta de Mat’s Mug! Me olvidé de vbNewLine
constante.
Considere ya sea:
Split(str, Chr(10))
o
Split(str, Chr(13))
Es posible que deba probar ambos si los datos se han importado de una fuente externa.