识别excel VBA中的换行符

时间:2016-05-30 17:42:21

标签: excel vba excel-vba

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

我试过了两次

# Reorder values in first 2 cols and cbind with df[,3]
m <- cbind(t(apply(df[1:2], 1, sort)), df[,3])

# Sum third column grouped by first and second column
aggregate(m[,3], by = list(m[,1],m[,2]),FUN=sum)
#  Group.1 Group.2  x
#1       1       2 10
#2       2       3  5
#3       3       4  5
#4       4       5  5
#5       5       6  5
#6       6       7  5
#7       7       8  5
#8       8       9  5
#9       9      10  5

InStr(str, "\n") < 0

但似乎没有工作

3 个答案:

答案 0 :(得分:8)

VBA中没有转义序列。请改用内置vbNewLine常量:

hasLineBreaks = InStr(str, vbNewLine) > 0

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

  

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

因此,您无需使用ASCII字符代码,甚至不需要使用respective built-in constants

答案 1 :(得分:6)

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

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

<强> [编辑]

点到马克杯的答案!我忘了vbNewLine常数。

答案 2 :(得分:4)

考虑:

Split(str, Chr(10))

Split(str, Chr(13))

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