Excel VBA 支持非英文字符读取文件

Excel VBA non-english character support for reading files

我正在使用这段代码将 sheets 分离到单个文件:

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 Klasör" 但是,当我删除 "ö" 字符时: "D:\Yeni" 这有效。我的 sheet 名称包含非英文字符,但这不是错误。只需编辑路径即可。

解决方案就是像这样在 windows 上控制系统区域设置:

  1. 转到控制面板,
  2. 点击时钟、语言和地区
  3. Windows10、Windows8:点击区域
    Windows7:点击区域和语言
    Windows XP:点击区域和语言选项
    出现“区域和语言”选项对话框。
  4. 单击“管理”选项卡
    在 Windows XP 上,单击“高级”选项卡
    如果没有“高级”选项卡,那么您没有以管理权限登录。
  5. 在非 Unicode 程序的语言部分下,单击更改系统区域设置并select所需的语言。
  6. 点击确定
  7. 重新启动计算机以应用更改。

在第5步中,选择您需要的语言(即具有您性格的语言)。否则您的路径将包含一些不同的字符,这些字符会在 运行 时导致错误。