Поддержка неанглийских символов в Excel VBA для чтения файлов

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

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

Но я получаю эти две ошибки соответственно, когда я запускаю код:

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

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

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам