Доброго времени суток, прошу помощи вот в чем, есть файл excel но в нем слова отображаются в не понятной форме, пример: Ïèëîâà÷èê подскажите в чем нюанс, почему так выглядит
Доброго времени суток, прошу помощи вот в чем, есть файл excel но в нем слова отображаются в не понятной форме, пример: Ïèëîâà÷èê подскажите в чем нюанс, почему так выглядитmss
у вас кодировка слетела. cp1252 вместо cp1251. Макрос к файлу примотан - чёт букву Я не обработал - подумаю, остальное вроде ОК. Макрос преобразует кракозябы в символы в пределах выделенного диапазона
[vba]
Код
Sub change1252_1251() On Error Resume Next If Selection.Cells.Count > 1 Then Set Rng = Selection.SpecialCells(xlCellTypeConstants) Else Set Rng = Selection End If On Error GoTo 0 For Each cell In Rng If (Not IsEmpty(cell)) And (Not IsError(cell)) Then strout = cell.Value For i = 1 To Len(cell) str1 = Mid(strout, i, 1) If AscW(str1) >= 192 And AscW(str1) <= 255 Then Mid(strout, i, 1) = Chr(AscW(str1)) End If Next i cell.Value = strout End If Next cell End Sub
[/vba]
у вас кодировка слетела. cp1252 вместо cp1251. Макрос к файлу примотан - чёт букву Я не обработал - подумаю, остальное вроде ОК. Макрос преобразует кракозябы в символы в пределах выделенного диапазона
[vba]
Код
Sub change1252_1251() On Error Resume Next If Selection.Cells.Count > 1 Then Set Rng = Selection.SpecialCells(xlCellTypeConstants) Else Set Rng = Selection End If On Error GoTo 0 For Each cell In Rng If (Not IsEmpty(cell)) And (Not IsError(cell)) Then strout = cell.Value For i = 1 To Len(cell) str1 = Mid(strout, i, 1) If AscW(str1) >= 192 And AscW(str1) <= 255 Then Mid(strout, i, 1) = Chr(AscW(str1)) End If Next i cell.Value = strout End If Next cell End Sub