我从excel导入一个表。其中一个专栏似乎有一些空间。 例如,String是A = abc / xyz / rpw
现在我正在使用拆分
sSplit = Split(A, "/", -1, vbBinaryCompare)
在这种情况下,sSplit(2)即rpw在末尾有一个空格,即使在修剪后我也无法将其删除。
答案 0 :(得分:1)
如果Trim(sSplit(2))
没有消除尾随空格,则字符串有可能以一个或多个字符结尾,这些字符看起来像一个空格但实际上是其他东西。
使用Asc()
功能确定最右侧字符的ASCII值。空格字符是ASCII 32。
Debug.Print Asc(Right(sSplit(2), 1))
同时验证字符数。如果它大于4,则“rpw”后跟多个字符。
Debug.Print Len(sSplit(2))
在评论中,您报告问题字符是换行符,ASCII 10.您可以使用Replace()
函数放弃字符串中的所有换行符,而不仅仅是当换行符是最后一个字符时。或者,如果字符串中可能存在换行符并且您希望保留这些换行符,则可以使用字符串长度减去1的Left()
来仅丢弃最后一个字符。
这是一个立即窗口会话,可以使它更清晰。
' this variable is a proxy for the 3rd element of your array
sSplit_2 = "rpw" & Chr(10)
? Len(sSplit_2)
4
? ">" & sSplit_2 & "<"
>rpw
<
' use Replace to discard every line feed from the string
? ">" & Replace(sSplit_2, Chr(10), "") & "<"
>rpw<
' extract all but the last character of the string
? ">" & Left(sSplit_2, Len(sSplit_2) -1) & "<"
>rpw<
如果更方便,您可以在Split
之前从“A”字符串中丢弃尾随换行符。