VBA读取泰文工作表名称乱码问题的解决方法咨询
解决VBA中泰文工作表名称变量乱码问题
- 强制使用Unicode字符串声明
VBA默认采用ANSI编码存储字符串,非英文字符易出现乱码。将变量声明改为Unicode格式,示例代码:
Const SHEET_NAME_1 As String = StrConv("การคำนวณราคา", vbUnicode)
导出/导入模块修复编码
模块文件本身编码错误也会导致字符乱码:- 打开VBA编辑器,右键目标模块选择「导出文件」,保存为
.bas格式 - 删除原模块,再通过「文件 -> 导入文件」选择刚才导出的
.bas,导入时确保编码为UTF-8
- 打开VBA编辑器,右键目标模块选择「导出文件」,保存为
避免硬编码,直接从工作表对象获取名称
跳过硬编码字符串的步骤,直接从Excel内部读取工作表名称,彻底规避编码问题:
Dim SHEET_NAME_1 As String ' 按工作表索引获取(假设目标表是第1个) SHEET_NAME_1 = ThisWorkbook.Sheets(1).Name ' 或者按工作表代码名定位 SHEET_NAME_1 = Sheet1.Name
- 调整VBA编辑器字体
确保VBA编辑器的字体支持泰文显示:- 打开VBA编辑器,点击「工具 -> 选项 -> 编辑器格式」
- 将字体改为支持泰文的字体(如Angsana New、TH Sarabun New)
内容的提问来源于stack exchange,提问作者Phan Kieu Hung
相关产品推荐
相关产品推荐

