You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel如何将多列内容导出为独立TXT文件并解决多语言乱码问题

问题原因

原版代码使用VBA内置Open语句输出文件时,默认采用ANSI编码,仅能兼容当前系统默认语言的字符,超出编码范围的多语言字符就会被替换为问号。

修复后的代码

采用UTF-8编码流输出方案,无需手动配置引用,新手可直接运行:

Sub export_data()
    Dim row As Integer, column As Integer, i As Integer, j As Integer
    Dim fullPath As String, myFile As String
    Dim stream As Object
    
    ' 自定义配置区,可按需修改
    fullPath = "C:\Workspace" ' 导出文件保存的文件夹路径
    row = 21 ' 需要导出的最后一行行号
    column = 5 ' 需要导出的列数
    
    ' 创建UTF-8编码流对象
    Set stream = CreateObject("ADODB.Stream")
    With stream
        .Charset = "UTF-8"
        .Mode = 3 ' adModeReadWrite
        .Type = 2 ' adTypeText
    End With
    
    For i = 1 To column
        ' 生成导出文件名,取第一行单元格内容作为文件名
        myFile = Cells(1, i).Value & ".txt"
        myFile = fullPath & "\" & myFile
        
        stream.Open
        ' 逐行写入当前列的内容
        For j = 2 To row
            stream.WriteText Cells(j, i).Value & vbCrLf
        Next j
        ' 覆盖保存到本地文件
        stream.SaveToFile myFile, 2 ' adSaveCreateOverWrite
        stream.Close
    Next i
    
    ' 释放对象
    Set stream = Nothing
    MsgBox "所有列导出完成!"
End Sub
注意事项
  • 输出的TXT文件为通用UTF-8编码,支持所有语种字符,不会再出现乱码问题。
  • 可根据实际需求修改自定义配置区的三个参数:导出路径、结束行号、导出列数。
  • 若第一行的列名包含Windows文件名不允许的特殊字符(如\/:*?"<>|),建议提前修改列名避免报错。

内容的提问来源于stack exchange,提问作者Emile van der Merwe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 01:06:08