Lỗi phông chữ khi dùng hàm input ?

Liên hệ QC

Nguyen Rem

Tất cả chỉ là đưa ra quyết định đúng đắn
Tham gia
23/2/22
Bài viết
211
Được thích
30
Giới tính
Nữ
Em chào các anh chị ^^ Lại là em đây :)))
Hiện tại em có một lỗi sau:
Em tạo một file là test.txt . Lưu với endingcode là UTF-8
Sau khi mà em dùng hàm input để nhập dữ liệu của file vào trong excel bằng cách dùng vòng lặp(Do-Until) thì phông chữ của em đã bị lỗi . Mong các anh chị giải thích giúp em lỗi là do đâu và ách sửa nó như thế nào ^^
Em cảm ơn các anh chị nhiều lắm <3

1652705512722.png
 

File đính kèm

  • test.txt
    83 bytes · Đọc: 3
  • 29(1).xlsm
    16 KB · Đọc: 6
Trên sheet không dùng được utf-8 đâu. Hoặc dùng unicode hoặc đọc utf-8 vào string rồi convert sang unicode rồi mới nhập xuống sheet. Mà dùng Scripting.FileSystemObject để đọc từ tập tin txt vào String.
 
Upvote 0
Bạn tìm hiểu và sử dụng ADODB.Stream nhé.
 
Upvote 0
Dạ vâng ạ ! Em cảm ơn các anh . Để em tìm hiểu rồi có gì em báo lại sau ạ
 
Upvote 0
Trên sheet không dùng được utf-8 đâu. Hoặc dùng unicode hoặc đọc utf-8 vào string rồi convert sang unicode rồi mới nhập xuống sheet. Mà dùng Scripting.FileSystemObject để đọc từ tập tin txt vào String.
Anh ơi ! Hiện tại em đã đọc cái file.txt (utf-8) vào string xong rồi mới in vào sheet nhưng sao mà nó vẫn lỗi tiếng việt ạ ?
1653293904565.png
(hình ảnh file.txt)
1653294122812.png
 

File đính kèm

  • stdlist.txt
    5.4 KB · Đọc: 2
  • FSO1.xlsm
    18.2 KB · Đọc: 6
Lần chỉnh sửa cuối:
Upvote 0
đọc cái file.txt (utf-8)



. . .

1653294916312.png
 
Upvote 0
Anh ơi ! Hiện tại em đã đọc cái file.txt (utf-8) vào string xong rồi mới in vào sheet nhưng sao mà nó vẫn lỗi tiếng việt ạ ?
View attachment 276329
Bạn không đọc bài #2 (dùng code tự viết convert utf-8 sang unicode) và bài #3 (dùng ADODB.Stream)

Ví dụ dùng ADODB.Stream
Mã:
Function utf82unicode(ByVal fileutf8 As String) As String
Dim stream As Object
    Set stream = CreateObject("ADODB.Stream")
    With stream
        .Charset = "utf-8"
        .Type = 2
        .Open
        .LoadFromFile fileutf8
        utf82unicode = .readText()
        .Close
    End With
    Set stream = Nothing
End Function

Sub Test()
Dim text As String
    text = utf82unicode(ThisWorkbook.Path & "\stdlist.txt") ' gia su tap tin txt va Excel cung thu muc
    ThisWorkbook.Worksheets(1).Range("A1") = text
End Sub
 
Upvote 0
Em cảm ơn các anh ^^ Để em tìm hiểu rồi có gì khúc mắc sẽ "đào" các anh lên sau :>
 
Upvote 0
Web KT
Back
Top Bottom