2013-07-12 3 views
1

Excel에서 테이블을 가져오고 있습니다. 열 중 하나에 보이는 공간이 있습니다. 그래서 예를 들어, 문자열은 내가 사용하고 이제 A = ABC/XYZ/RPW문자열의 오른쪽에서 공백을 제거하는 방법은 무엇입니까?

이다 분할

sSplit = Split(A, "/", -1, vbBinaryCompare) 

이 제안서 케이스 sSplit (2) RPW가 끝 부분에 공간이 내가 할 수없는 생각이다 트리밍 후에도 제거 할 수 있습니다.

답변

1

Trim(sSplit(2))이 후행 공백을 제거하지 않으면 문자열이 공백으로 보이지만 실제로는 다른 문자로 끝날 가능성이 있습니다.

Asc() 함수를 사용하여 맨 오른쪽 문자의 ASCII 값을 결정하십시오. 공백 문자는

Debug.Print Asc(Right(sSplit(2), 1)) 
또한

문자의 수를 확인 ASCII 32

입니다. 4보다 큰 경우 "rpw" 다음에 두 개 이상의 문자가옵니다. 코멘트에서
Debug.Print Len(sSplit(2)) 

, 당신은 ASCII 10. 당신은 모든 라인은 라인 피드가 마지막 문자가 아닌 경우, 문자열 피드를 폐기하기 위해 Replace() 기능을 사용할 수 있습니다, 문제의 문자가 줄 바꿈 문자보고 . 또는 문자열 내에 줄 바꿈이 있고 그 줄을 유지하려는 경우 Left() 문자열의 길이에서 1을 빼고 마지막 문자 만 무시할 수 있습니다.

여기에는 직접 실행 가능한 세션이 있으므로 명확하게 이해할 수 있습니다. 더 편리 경우

' 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" 문자열에서 후행 줄 바꿈을 폐기 할 수있다.

+0

예, 길이가 3 대신에 4 ...하지만 해결책이 될 수 있습니다 ... 나는 엑셀 시트에서 어떤 공간도 찾을 수 없습니다 ..... – SAM244776

+0

내가 말했듯이 시트를 능가하십시오 ... 지금 엑셀 시트에는 많은 행이 있으며 각기 다른 값을 가지고 있습니다 ... 언급 한 바와 같이 현재는 단 한 행으로 만 문제가 있습니다. 그래서 내가 왼쪽으로 갈라져 나간다면 다른 단어들이 더 길어지고 또한 짧아 질 수 있습니다 .... 나는 당신이 내 문제를 갖기를 희망합니다 .... 내가 찾고있는 해결책은 이것들을 없애는 것입니다 여분의 공백이나 그들이 존재하는 이유 – SAM244776

+0

'Asc()'는 그 뒷부분 문자의 ASCII 값을 무엇으로 알려 줍니까? – HansUp

관련 문제