2015-08-04 3 views
1

Я реализовал скрипт vba, который создает папки, файлы и помещает описание в файлы для каждой строки. Проблема сербских латинских букв, таких как «š, đ, č, ć, ž». Файлы должны быть записаны в файле ANSII .txt beacause из одной программы. Более неудобно то, что первый файл в порядке .txt (кодировка ANSII), и он хранит буквы čćšđš, но остальные не в порядке.Специальные символы в ANSII через VBA

Возможно, мне нужно изменить настройки клавиатуры в панели управления?

На этой ссылке я загрузил тестовый файл: File

Пожалуйста, запустите этот простой код, и, пожалуйста, дайте мне любую обратную связь. Спасибо!

Sub files() 
Dim iRow As Long 
Dim iFile As Integer 
Dim sPath As String 
Dim sFile As String 


For iRow = 1 To Cells(Rows.Count, "C").End(xlUp).Row 
    iFile = FreeFile 
    With Rows(iRow) 
     sPath = "E:\" & .Range("B1").Value & "\" 
     If Len(Dir(sPath, vbDirectory)) = 0 Then MkDir sPath 
     sFile = .Range("D1").Value & ".txt" 
     Open sPath & sFile For Output As #iFile 
     Print #iFile, .Range("E1").Value 
     Close #iFile 
    End With 
Next iRow 
End Sub 

P.S. Для списка этих символов Юникода Я хочу быть в ASCII:

  • U + 0106 Ć 0xC4 0x86 \ 304 \ 206 Ć
  • U + 0107 ć 0xC4 0x87 \ 304 \ 207 ć
  • U + 010C Č 0xC4 0x8C \ 304 \ 214 Č
  • U + 010D Č 0xC4 0x8D \ 304 \ 215 č
  • U + 0110 Đ 0xC4 0x90 \ 304 \ 220 Đ
  • U + 0111 đ 0xC4 0x91 \ 304 \ 221 đ
  • U + 0160 Ш. 0xC5 0xA0 \ 305 \ 240 Š
  • U + 0161 š 0xC5 0xA1 \ 305 \ 241 š
  • U + 017D Ж. 0xC5 0xBD \ 305 \ 275 Ž
  • U + 017E ž 0xC5 0xBE \ 305 \ 276 ž
+0

Если это работает, его следует перенести в код обзора – Tom

+0

@ Vogel612 пропустил это. Мой плохой - мне нужен мой утренний кофе. – Tom

+0

Я отредактировал код и добавил скриншот. Очистите папку вывода и попробуйте код, который я дал ниже. Возможно, вам придется обновить страницу ... –

ответ

1

Это то, что я пытался, и это работает ...

Sub files() 
    Dim iRow As Long 
    Dim sPath As String, sFile As String 
    Dim fs As Object 

    Set fs = CreateObject("Scripting.FileSystemObject") 

    For iRow = 2 To Cells(Rows.Count, "C").End(xlUp).Row 
     sPath = "E:\" & Range("B1").Value & "\" 

     If Len(Dir(sPath, vbDirectory)) = 0 Then MkDir sPath 

     sFile = Range("D" & iRow).Value & ".txt" 

     With fs 
      With .CreateTextFile(sPath & sFile, , True) 
       .Write Range("E" & iRow).Value 
       .Close 
      End With 
     End With 
    Next iRow 
End Sub 

enter image description here

+0

Спасибо за вашу версию кода. Это намного лучше. Код здесь является второстепенной проблемой, но я просто хочу, чтобы вы увидели этот текст в файлах ANSII txt. Почему для некоторых кодов ячеек записывает эти конкретные письма с помощью крючков ččšđ, для других - частично, а для третьих - нет? Спасибо за код еще раз! – Stefan89BEG

+0

Как я уже сказал, код не работает только для одной строки (6-й). В остальном он работал –

+0

nope, только для второй строки он печатает нормально, для остальных у меня потеря символов ... – Stefan89BEG

Смежные вопросы