|
'假设只有2种编码:unicode、utf-8,否则输出可能还是乱码,,,
Option Explicit
Sub test()
Dim filename, arr, i, j, t, b(1) As Byte
filename = ThisWorkbook.Path & "\2019.csv"
If Len(Dir(filename)) = 0 Then MsgBox filename: Exit Sub
Open filename For Binary Access Read As #1
Get #1, 1, b
Close #1
With CreateObject("ADODB.Stream")
.Type = 2
.Mode = 3
.Open
.LoadFromFile filename
.Charset = IIf(b(0) & b(1) = &H3E516, "Unicode", "UTF-8")
.Position = 2
t = .ReadText
.Close
End With
arr = Split(t, vbNewLine)
For i = 0 To UBound(arr)
If InStr(arr(i), ",") Then
t = Split(arr(i), ",")
If i = 0 Then ReDim brr(UBound(arr), UBound(t))
For j = 0 To UBound(t): brr(i, j) = t(j): Next
End If
Next
With [a2]
.Resize(Rows.Count - 1, UBound(brr, 2) + 1).ClearContents
.Resize(UBound(brr, 1) + 1, UBound(brr, 2) + 1) = brr
End With
End Sub |
评分
-
3
查看全部评分
-
|