테스트 스크립트 (XML)가 있고 Excel 시트의 번역이 필요합니다. Excel 시트에서 영어로 단어를 검색하고 독일어, 프랑스어 및 이탈리아어로 번역합니다. 나는 프랑스어 단어에 문제가있다.Excel 데이터에서 XML로 잘못된 단어가 출력됩니다.
나는 에서 VBA을 매크로를 사용하고 있습니다. 영어로 된 해당 단어를 찾을 때 찾기을 사용하고 있습니다. Excel 시트에서 프랑스어 단어를 찾았을 때 문자열에 int를 저장하는 중입니다. 기본적으로
CODE
If intChoice <> 0 Then
strPath = Application.FileDialog(_
msoFileDialogOpen).SelectedItems(1)
Dim strFolderPath As String
strFolderPath = Left(strPath, Len(strPath) - 4)
Set fGermanOutputFile = fso.CreateTextFile((strFolderPath & "_German.xml"))
Set fItalianOutputFile = fso.CreateTextFile((strFolderPath & "_Italian.xml"))
Set fFrenchOutputFile = fso.CreateTextFile((strFolderPath & "_French.xml"))
Open strPath For Input As #1
Do Until EOF(1)
Line Input #1, strLine
intLastFoundChar = 0
strGermanLine = ""
strFrenchLine = ""
strItalianLine = ""
For intI = 0 To (UBound(ArrStrOpeningTags, 1) - 1)
intFoundString = InStr(strLine, ArrStrOpeningTags(intI))
If intFoundString <> 0 Then
intI = 3
End If
Next intI
If intFoundString <> 0 Then
For intJ = 0 To (UBound(ArrStrParamsToReplace) - 1)
strLine = Right(strLine, Len(strLine) - intLastFoundChar)
strStringToLookFor = (ArrStrParamsToReplace(intJ) & "=""")
intFoundString = InStr(1, strLine, strStringToLookFor, vbBinaryCompare)
If intFoundString <> 0 Then
intStringSplitIndex = (intFoundString + Len(strStringToLookFor))
strStringToLookFor = Right(strLine, Len(strLine) - intStringSplitIndex + 1)
strDummyString = Left(strLine, intStringSplitIndex - 1)
strGermanLine = strGermanLine & strDummyString
strFrenchLine = strFrenchLine & strDummyString
strItalianLine = strItalianLine & strDummyString
intLastFoundChar = intLastFoundChar + intStringSplitIndex
intFoundString = InStr(strStringToLookFor, """")
If intFoundString <> 0 Then
strStringToLookFor = Left(strStringToLookFor, intFoundString - 1)
Set rngFoundString = rngEnglishDictionary.Find(strStringToLookFor)
If (rngFoundString Is Nothing) Then
Debug.Print "String " & strStringToLookFor & " not found!"
strGermanLine = strGermanLine & strStringToLookFor & """"
strFrenchLine = strFrenchLine & strStringToLookFor & """"
strItalianLine = strItalianLine & strStringToLookFor & """"
Else
intWordToReplaceIndex = rngEnglishDictionary.Find(strStringToLookFor).Row - rngEnglishDictionary.Row + 1
strGermanLine = strGermanLine & rngGermanDictionary(intWordToReplaceIndex) & """"
strFrenchLine = strFrenchLine & rngFrenchDictionary(intWordToReplaceIndex) & """"
strItalianLine = strItalianLine & rngItalianDictionary(intWordToReplaceIndex) & """"
End If
intLastFoundChar = intLastFoundChar + Len(strStringToLookFor)
End If
End If
Next intJ
Else
strGermanLine = strLine
strFrenchLine = strLine
strItalianLine = strLine
End If
fGermanOutputFile.WriteLine (strGermanLine & vbCrLn)
fFrenchOutputFile.WriteLine (strFrenchLine & vbCrLn)
fItalianOutputFile.WriteLine (strItalianLine & vbCrLn)
strGermanLine = ""
strFrenchLine = ""
strItalianLine = ""
Loop
End If
사이트에 오신 것을 환영합니다! 코드를 게시 할 수 있습니까? 좋은 [소개는 여기에] –
정말 고마워 ... 내가 정말로 잃어 버렸기 때문에. 나는 VBA에 익숙하지 않고이 코드조차도 어려웠다. 나를. 이제이 인코딩 문제를 어떻게 다룰 지 모르겠습니다. 그리고 btw, 내가 직접 이미지를 여기에 넣을 수 있을까요? (한 명의 사회자가 전에 내 첫 번째 게시물에서 변경) –
도와 드리겠습니다. rngFrenchDictionary를 사용하고있는 초기 얼 굴이 어디에 집중할 것입니까? 이 사전에서 외부 구성 요소를 호출하고 있습니까? windows-1552는 많은 오래된 구성 요소의 기본 인코딩입니다. 문자가 올바르게 나오지 않는 예를 들어 줄 수 있습니까? –