Mình có làm 1 đoạn code để ghép 02 file csv thành 01 file excel. Mình sử dụng ADODB để lấy dữ liệu vào recordset xong đổ ngược lại file excel. Nhưng bên file csv đang font kiểu unicode "Calibri" hiển thị tiếng việt bình thường nhưng đổ ra file excel thì lại bị lỗi font. Nguyên nhân vì sao nhỉ. Ai biết chỉ cách khắc phục với. Cảm ơn!
Đây là code.
Đây là code.
Mã:
Sub GetDataFromCSVFiles()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim DPFileName, DPFilePath As String
Dim SQLString As String
Dim i As Integer
Dim IsFirstFile As Boolean
DPFilePath = ThisWorkbook.Path & "\My Files\"
DPFileName = Dir(DPFilePath & "*.csv")
IsFirstFile = True
Do Until DPFileName = ""
If IsFirstFile Then
SQLString = "SELECT * FROM [" & DPFileName & "]"
IsFirstFile = False
Else
SQLString = SQLString & " UNION SELECT * FROM [" & DPFileName & "] "
End If
DPFileName = Dir
Loop
Sheet1.Range("A1").CurrentRegion.Offset(1, 0).Clear
Set cn = New ADODB.Connection
cn.Provider = "Microsoft.ACE.OLEDB.12.0"
cn.ConnectionString = "Data Source=" & DPFilePath & ";" & _
"Extended Properties=""text;HDR=Yes;IMEX=1;FMT=Delimited;"""
'cn.ConnectionString = _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=" & ThisWorkbook.Path & "\My Files\;" & _
"Extensions=asc,csv,tab,txt;"
cn.Open
Set rs = New ADODB.Recordset
rs.ActiveConnection = cn
rs.Source = SQLString
rs.Open
'For i = 0 To rs.Fields.Count - 1
' Sheet1.Cells(1, i + 1).Value = rs.Fields(i).Name
'Next i
'Sheet1.Cells(1, 1).Value = Mid(Sheet1.Cells(1, 1).Value, 4)
Sheet1.Range("A2").CopyFromRecordset rs
rs.Close
cn.Close
Sheet1.Range("A2").CurrentRegion.EntireColumn.AutoFit
End Sub