2014-09-24 2 views
-1

영어 문자처럼 보이므로 모든 그리스 문자를 o 및 v를 제외한 배열에 넣으려고합니다. 16 진수 코드를 사용할 수는 있지만 문자로 처리되기 때문에 성가신 것입니다. 아스키 코드가 훨씬 잘 작동합니다. 이 코드를 사용할 때그리스 문자 아스키 in vba exc

코드 :

전체 배열은 57로 가득하지만, 도착
Dim variables2(23) 
j = 0 
For i = 1 To 25 
    If i = 13 Or i = 15 Then 
    Else 
    j = j + 1 
    variables2(j) = AscW((944 + i)) 
    End If 
Next 

이 코드

코드를 사용할 때 :

MsgBox AscW(Range("c4031").Value) 

을 그리고에 알파를 배치 적절한 셀 번호는 945입니다. 제 질문은 왜 variables2 (j) = AscW ((944 + i)) 일 때 그리스 문자가 배열에 채워지지 않는 이유입니까?

답변

2

AscW 기능이 아닌 ChrW 기능을 사용해야합니다. AscW 함수는 유니 코드 문자 을 유니 코드/utf-16 코드 단위으로 변환하고, ChrW 함수는 숫자 유니 코드 코드 단위 을 유니 코드 문자열/문자 표현으로 변환합니다.

Sub greekToMe() 
Dim variables2(23) 
j = 0 
For i = 1 To 25 
    If i = 13 Or i = 15 Then 
    Else 
    j = j + 1 
    variables2(j) = ChrW((944 + i)) 
    End If 
Next 
'Review the conversion on a worksheet: 
Range("A1:A24").Value = variables2 

End Sub 
+0

감사합니다. – user147178

+0

건배, 문제가 해결 되었다면 [대답 수락] (http://stackoverflow.com/help/someone-answers)을 고려해보십시오. :) –

+1

사실,'ChrW'는 숫자 _ 유니 코드/UTF-16 코드 단위 _를 문자열 값으로 변환합니다. ASCII는 구식입니다. –

0

ASCW 문자열의 첫 번째 문자에 대한 정수 코드를 반환합니다. 루프를 반복 할 때마다 '9'에서 시작하는 숫자의 AscW를 호출하고 57은 9의 코드입니다.

AscW가 아닌 ChrW를 사용하려고합니다.

+0

중복 답변 ... –