我有一个存储在Web服务器上的UTF-8 CSV文件。当我下载这个文件并将其放到我的硬盘上,然后使用这个宏(从宏录制器中)将其导入到Excel表格中:
Sub Macro2()
Workbooks.OpenText Filename:= _
"C:/myFile.csv", Origin _
:=65001, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
, Comma:=True, Space:=False, Other:=False
End Sub
所有的字符(包括越南语字符)都被正确地显示。
当我尝试使用相同的宏,但是不是给出文件的本地地址("C:/myFile.csv"),而是传递文件的 URL ("http://myserver.com/myFile.csv"),CSV 文件能够正确导入到我的 Excel 工作表中,但越南语字符不再显示正确。
我还尝试使用“数据”选项卡,但 Excel 忽略了编码:
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:/myFile.csv" _
, Destination:=Range("$A$1"))
.Name = "myFile.csv"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 65001
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = "~"
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
з¤ғдң‹ж•°жҚ®пәљГ‚вЂһ; Г‚; Г‚Лњ; Г‚1/4; ‰; Г‚в„ұ,Г‚в„ұ
Excel й”™иҮҮиҮ»еЏ–дёғпәљГѓвЂљГұ€Ең; Â; ˜; Â1/4; ÂГұ€°; ÂГұвЂһВұ,ÂГұвЂһВұ;
UTF-8
编码,手动打开那些文件并录制宏时设置了Origin:=65001
。当我完全删除Origin参数后,这些文件就能正常打开了... 我认为这可能是Excel的一个错误(可能是宏记录器或者简单地说UTF-8
与Excel的65001
之间没有关系... 不确定,但我很高兴在删除Origin参数后它可以正常工作了。 - user2140173