Поддержка неанглийских символов в Excel VBA для чтения файлов - PullRequest
0 голосов
/ 26 ноября 2018

Я использую этот фрагмент кода для разделения листов на отдельные файлы:

Sub Splitbook()
Dim xPath As String
xPath = Application.ActiveWorkbook.Path
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each xWs In ThisWorkbook.Sheets
   xWs.Copy
   Application.ActiveWorkbook.SaveAs Filename:=xPath & "\" & xWs.Name & ".xlsx"
   Application.ActiveWorkbook.Close False
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Но я получаю эти две ошибки соответственно при запуске кода: enter image description here enter image description here

, и этот файл ". \ VB5052.tmp" создается во время выполнения.Я понял, что эта ошибка возникает, когда в моем пути есть неанглийские символы.Итак, как настроить VBA для поддержки неанглийских символов?

Кстати, у меня много разных путей, и я делаю это разделение в большинстве случаев.

Этот путь не работал: "D: ​​\ Yeni Klasör" Однако, когда я удаляю символ "ö" : "D: ​​\Йени " это работает.Имена моих листов содержат неанглийские символы, но это не ошибка.Просто редактирование пути работает.

1 Ответ

0 голосов
/ 26 ноября 2018

Решением является только управление языком системы в таких окнах:

  1. Перейти к панели управления,
  2. Нажмите Часы, язык и регион
  3. Windows 10, Windows 8: нажмите «Регион»
    «Windows 7»: выберите «Регион и язык»
    Windows XP: выберите «Региональные и языковые параметры»
    Появится диалоговое окно «Параметры региона и языка».
  4. Выберите вкладку «Административная»
    В Windows XP перейдите на вкладку «Дополнительно»
    Если вкладка «Дополнительно» отсутствует, то вы не авторизованы с правами администратора.
  5. В разделе «Язык для программ, не поддерживающих Юникод», нажмите «Изменить системный языковой стандарт» ивыберите нужный язык.
  6. Нажмите OK
  7. Перезагрузите компьютер, чтобы применить изменения.

На 5-м шаге выберите нужный вам язык (т.е.язык, который имеет ваш характер).В противном случае ваш путь будет содержать несколько разных символов, которые вызывают ошибки во время выполнения.

...