Nhờ giúp đỡ sửa nhiều ký tự thành các ký tự khác bằng VBA sang sheet mới (1 người xem)

Người dùng đang xem chủ đề này

dosontung86

Thành viên chính thức
Tham gia
22/11/12
Bài viết
60
Được thích
2
Em có file ở Sheet 1, muốn sửa các ký tự đặc biệt thành các ký tự khác đã được liệt kê ở sheet 2 để có thể lưu vào file txt ko bị lỗi font.
E muốn dùng bằng VBA, qua nút bấm và tạo sang sheet mới.
Em cảm ơn nhiều ạ.
Bác nào qua giúp em có thể để lại số điện thoại được ko ạ?
 

File đính kèm

sheet2 đâu có gì trong đó?
 
Upvote 0
Bạn thử cách này xem
1/ Chọn toàn bộ sheet 1.
2/ Nhấn CTRL+C.
3/ Nhấn CTRL+SHIFT+F6.
4/ Xuất hiện cửa sổ "Unikey Toolkit" (nếu bạn sử dụng Unikey). Trong phần "Bảng mã", bạn chọn "Nguồn" là "TCVN3-ABC", chọn đích là "Unicode".
5/ Nhấn vào nút "Chuyển mã". Tắt Unikey toolkit.
6/ Chọn toàn bộ sheet3 và nhấn CTRL+V.
Không hiểu rõ ý bạn nên có thể không đúng ý bạn.
Bạn thử xem sao.
 
Upvote 0
Ko phải ạ.
Cái TCVN3 này khi lưu vào file txt có 1 số ký tự đặc biệt nó ko cho lưu sẽ bị lỗi font.
VD như ế, ị... Nhưng khi sửa thành 1 ký tự mã hóa thì nó lại lưu đc và khi in ra thì ko bị lỗi ạ.
 
Upvote 0
Help me! :((((((((((((((((((((((((
Vậy bạn đang muốn in từ file text hay in từ excel (và chỉ muốn dùng file txt để lưu dữ liệu)?
Nếu chỉ là in từ file text thì bạn lưu dạng UTF-8 đi, bạn lưu ANSI với mục đích gì?
Nếu bạn dùng file txt để lưu trữ thì xin hỏi bạn:
- Lý do bạn chọn file txt để lưu dữ liệu
- Dữ liệu có cần phải mã hóa (encode) gì không
- Bạn soạn thảo trong excel rồi lưu lại vào txt, sau đó khi nào cần lại lấy dữ liệu từ txt vào excel?
 
Upvote 0
Dạ.
E tổng hợp mọi thứ bằng exel, rồi nhập dữ liệu vào phần mềm (Phần mềm chuyên dụng, hơi cổ), để làm nhanh thì e sửa trực tiếp từ các file txt dữ liệu của phần mềm ạ. Giúp em với.

Em chỉ cần 1 đoạn code vba có thể sửa (hay replace được từ Sheet này chuyển đích đến sang sheet khác.
Ví dụ chuyển tất cả chữ cái ă thành 1234, â thành 2134. Ví dụ thế ạ. Em có 10 ký tự cần sửa ạ
 
Upvote 0
Sub ThayDem()
Dim Rng As Range, iJ As Long, lRow As Long, bVTri As Byte
Dim Tat(1 To 3), The(1 To 3) As String
lRow = Cells(65432, 2).End(xlUp).Row
Tat(1) = "T."
The(1) = "Thi"
Tat(2) = "H."
The(2) = "Huu"
Tat(3) = "V."
The(3) = "Van"
For iJ = 2 To lRow
Set Rng = Cells(iJ, 2)
bVTri = InStr(Rng, ".")
For iK = 1 To 3
If Mid(Rng, bVTri - 1, 2) = Tat(iK) Then
Rng.Offset(, 1) = Replace(Rng, Tat(iK), The(iK))
End If
Next iK
Next iJ
End Sub

Có đoạn code này gần gần như mong muốn của em ạ
 
Upvote 0
Em có file ở Sheet 1, muốn sửa các ký tự đặc biệt thành các ký tự khác đã được liệt kê ở sheet 2 để có thể lưu vào file txt ko bị lỗi font.
E muốn dùng bằng VBA, qua nút bấm và tạo sang sheet mới.
Em cảm ơn nhiều ạ.
Bác nào qua giúp em có thể để lại số điện thoại được ko ạ?
Dùng tạm cái này xem sao
PHP:
Public Sub THAYTHE()
Dim MDuLieu, MThayThe, d As Long, r As Long, c As Long
MDuLieu = Sheet1.UsedRange.Value
MThayThe = Sheet2.UsedRange.Value

For d = 2 To UBound(MThayThe)
For c = 1 To UBound(MDuLieu, 2)
For r = 1 To UBound(MDuLieu)
If InStr(1, MDuLieu(r, c), MThayThe(d, 1), 1) > 0 Then
MDuLieu(r, c) = Replace(MDuLieu(r, c), MThayThe(d, 1), MThayThe(d, 2))
End If
Next r
Next c
Next d

Sheet3.Range("A1").Resize(UBound(MDuLieu), UBound(MDuLieu, 2)).Value = MDuLieu
Sheet1.UsedRange.Copy
Selection.PasteSpecial Paste:=(xlPasteFormats)
Application.CutCopyMode = False
Sheet3.UsedRange.Columns.AutoFit
End Sub
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom