2014-01-21 11 views
2

일부 기본 vba 코드가있는 통합 문서를 개발했습니다. 통합 문서는 히브리어로, vba 코드는 히브리어를 사용합니다 (예 : 히브리어로 문자열을 비교하거나 히브리어 이름을 사용하여 시트에 액세스 할 수 있습니다. Excel 2010에서이 통합 문서를 개발하여 xlsm 파일로 저장했습니다 (매크로 사용 가능). 다양한 컴퓨터에서 잘 작동하며 Excel 2007이 설치된 특정 PC를 제외하고 버전을 능가합니다. 문제는 vba 코드에서 사용한 히브리 문자열이 제대로 디코딩되지 않아 횡설수설처럼 보인 것 같습니다. 통합 문서 자체의 히브리어 텍스트 (예 : 셀 또는 시트 이름)는 완벽하게 잘되어 있으며 VBA 코드 자체에서 사용하고있는 텍스트 만 제대로 읽히지 않는 것 같습니다. 통합 문서가 열리면 인코딩/디코딩을 자동으로 설정하여 모든 컴퓨터에서 사용할 수 있도록 Excel 버전을 사용하고 싶습니다.vba 코드의 히브리어 텍스트가 제대로 디코딩되지 않습니다.

herehere을 더 읽은 후에는 시스템 로케일이 히브리어가 아닐 때 이런 현상이 발생한다는 것을 알고 있습니다. vba 코드 (즉, OS 레벨에서 변경하지 않음)를 사용하여 Excel에서 동적으로 만 설정할 수있어서 내가 작성한 히브리어 텍스트가 작동 할 수 있습니까? 그렇지 않으면 vb 코드에서 모든 히브리어 텍스트를 제거해야합니다.

답변

0

ADODB 스트림에서 다음 기능을 사용 (당신은 참조 할 필요가있는 Microsoft ActiveX 데이터 개체 라이브러리를 최신)

Public Function CorrectHebrew(gibberish As String) As String 

    Dim inStream As ADODB.stream 

    Set inStream = New ADODB.stream 
    inStream.Open 
    inStream.Charset = "WIndows-1255" 
    inStream.WriteText gibberish 
    inStream.Position = 0 
    inStream.Charset = "UTF-8" 
    CorrectHebrew = inStream.ReadText 
    inStream.Close 
End Function