Поддержка неанглийских символов в 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 ответ
Решением является просто управление языком системы в таких окнах:
- Перейти к панели управления,
- Нажмите Часы, Язык и Регион
- Windows 10, Windows 8: нажмите Регион
Windows 7: нажмите "Регион и язык"
Windows XP: нажмите "Язык и региональные стандарты"
Откроется диалоговое окно "Регион и язык". - Нажмите вкладку "Администрирование"
В Windows XP перейдите на вкладку "Дополнительно"
Если вкладка "Дополнительно" отсутствует, то вы не авторизованы с правами администратора. - В разделе "Язык для программ, не поддерживающих Юникод", нажмите "Изменить языковой стандарт системы" и выберите нужный язык.
- Нажмите ОК
- Перезагрузите компьютер, чтобы применить изменения.
На 5-м шаге выберите язык, который вам нужен (то есть язык с вашим персонажем). В противном случае ваш путь будет содержать несколько разных символов, которые вызывают ошибки во время выполнения.