识别excel VBA中的换行符

Moj*_*imi 5 excel vba excel-vba

我正在尝试识别一个单元格有换行符(不是菜单栏单元格选项,实际多行通过alt + enter),并且单独提取每一行

我试过了两个

InStr(str, "\n") < 0
Run Code Online (Sandbox Code Playgroud)

Split(str, "\n")
Run Code Online (Sandbox Code Playgroud)

但似乎没有奏效

Mat*_*don 8

VBA中没有转义序列.vbNewLine改为使用内置常量:

hasLineBreaks = InStr(str, vbNewLine) > 0
Run Code Online (Sandbox Code Playgroud)

根据MSDN,vbNewline返回特定平台的新行字符; 适用于当前平台的,即:

Chr(13)+ Chr(10)[在Windows上]或在Macintosh上,Chr(13)

因此,您不需要使用ASCII字符代码,甚至不需要使用各自的内置常量.


Mac*_*Los 7

VBA不是C#("\n").您可以找到换行符:vbCrvbLfvbCrLf常量.

有关详细信息,请参阅:
vbCr
vbLf
vbCrLf

[编辑]

指向Mat的马克杯答案!我忘了vbNewLine不断.


Gar*_*ent 5

考虑:

Split(str, Chr(10))
Run Code Online (Sandbox Code Playgroud)

或者

Split(str, Chr(13))
Run Code Online (Sandbox Code Playgroud)

如果数据是从外部源导入的,您可能需要同时尝试这两种方法。