延伸上面大老的想法,如果你仍是想轉csv,可以考慮下列寫法。
主要還是轉成"unicode"為主
Sub ExportToCSV()
Dim rng As Range
Dim csvFilePath As String
' 获取选定的范围
Set rng = Selection
' 选择保存 CSV 文件的路径
csvFilePath = Application.GetSaveAsFilename(FileFilter:="CSV文件 (*.csv), *.csv")
' 检查是否选择了有效的文件路径
If csvFilePath <> "False" Then
' 导出数据到 CSV 文件
rng.Copy
Workbooks.Add(1).ActiveSheet.Paste Destination:=Range("A1")
ActiveWorkbook.SaveAs Filename:=csvFilePath, FileFormat:=xlCSV, CreateBackup:=False, FileEncoding:=65001 ' 使用 UTF-8 编码保存文件
ActiveWorkbook.Close SaveChanges:=False
Application.CutCopyMode = False
MsgBox "CSV 文件已导出成功!", vbInformation
Else
MsgBox "未选择有效的文件路径!", vbExclamation
End If
End Sub
也試過使用excel vba把選擇的範圍轉換成.CSV 使用wordpad開啟會變亂碼,用筆記本開正常(主要是要wordpad能打開不變亂碼)。
針對這句話
可以先試試用 Wordpad 的檔案類型(Unicode)開啟檔案看看可不可行