VBA QueryTable导入UTF-8编码CSV到Excel欧元符号乱码如何解决
解决方案
方案1:导入环节指定编码(从根源解决,最推荐)
乱码的核心原因是QueryTable默认使用系统ANSI编码解析UTF-8格式的CSV文件,属于编码错配问题,和单元格格式无关,调整导入参数即可解决:
在你原有创建QueryTable的代码中添加TextFilePlatform = 65001的配置,65001是UTF-8编码对应的代码页编号,参考示例:
With worksheet.QueryTables.Add( _ Connection:="TEXT;" & 你的CSV文件路径, _ Destination:=worksheet.Range("A1")) .TextFilePlatform = 65001 ' 新增这行指定UTF-8编码 .TextFileCommaDelimiter = True ' 保留你原来的其他QueryTable配置项 .Refresh End With
导入完成后再执行你原来的格式设置代码worksheet.Columns("C").NumberFormat = "# €_)"即可正常生效。
方案2:已导入数据的快速修复
如果数据已经导入完成不想重新走导入流程,直接批量替换错误字符即可,执行一行代码就能完成修复:
' 把C列所有乱码字符替换为正常欧元符号 worksheet.Columns("C").Replace What:="Ôé¼", Replacement:="€", LookAt:=xlPart
替换完成后再设置C列货币格式即可正常生效。
内容的提问来源于stack exchange,提问作者giannisJS
相关产品推荐
相关产品推荐

