2014-11-30 5 views
0

LEN 함수에 이상한 문제가 있습니다. 내 입력은 LEN이 길이 2를 반환하는 문자열 "......"입니다. 나는 왜 그런 일이 일어나고 있는지 전혀 모른다. 어떤 제안? 내가 사용하는 코드는 다음과 같습니다.Len 함수가 잘못된 결과를 반환합니다.

Function replaceCharWith(ByVal str As String, ByVal chToReplace As String, ByVal ch As String) As String 
For i = 1 To Len(str) 

    If Mid(str, i, 1) = chToReplace Then 
     replaceCharWith = replaceCharWith & ch 
    Else 
     replaceCharWith = replaceCharWith & Mid(str, i, 1) 
    End If 
Next 
End Function 

Sub dotsToSlashes() 
    Dim c As Range 
    For Each c In Selection 
     c = replaceCharWith(c, ".", "/") 
    Next 
End Sub 

감사합니다.

+5

귀하의 문자열이 "......"이 아닌 "......"것으로 의심됩니다. 이것은 HORIZONTAL ELLIPSIS 유니 코드 x2026의 2 배입니다. 자동 고침 옵션이 기본값 인 경우 Excel이 ...에 의해 자동으로 대체됩니다. –

+1

그냥 [호 전환] (http://msdn.microsoft.com/en-us/library/office/gg264409(v=office.15).aspx)를 사용하면 어떨까요? –

+0

@CoolBlue 왜냐하면 지금은 그것에 대해 알고 .. 고마워! –

답변

6

문자열이 "......"이 아닌 "......"인 것으로 의심됩니다. 이것은 HORIZONTAL ELLIPSIS 유니 코드 x2026의 2 배입니다. 자동 고침 옵션이 기본값 인 경우 Excel이 ...에 의해 자동으로 대체됩니다. 자동 고침 옵션은

Sub HorizontalEllipsesTest() 

s = "......" 
MsgBox Len(s) 

s = ChrW(8230) & ChrW(8230) 'x2026 = 8230 
MsgBox s 
MsgBox Len(s) 

End Sub 

:

예를 참조하십시오? https://support.office.com/en-us/article/Where-are-the-AutoCorrect-options-cb889db0-07f8-400a-b6ef-4192cc05cbc3

관련 문제