Thêm khoảng trắng sau mỗi ký tự tiếng Hoa.

Liên hệ QC

Khả Như Lê

Thành viên mới
Tham gia
15/11/22
Bài viết
5
Được thích
0
Xin chào anh/chị
- Hiện tại em có bảng mã dữ liệu các chữ đang dính liền vào nhau, em muốn dùng công thức để thêm khoảng trắng sau mỗi ký tự (cụ thể như hình đính kèm). Em dùng hàm Mid và hàm nối chuỗi trắng thì chỉ được chữ Tiếng Việt nhưng công ty em mới vào làm có sử dụng tiếng Hoa thì không thêm được chuỗi trắng nhưng em không hiểu tại sao.
- Em có Demo một chữ, rất mong anh chị giúp đỡ ạ.
Screenshot 2022-11-15 175302.png
Em cảm ơn.
 

File đính kèm

Xin chào anh/chị
- Hiện tại em có bảng mã dữ liệu các chữ đang dính liền vào nhau, em muốn dùng công thức để thêm khoảng trắng sau mỗi ký tự (cụ thể như hình đính kèm). Em dùng hàm Mid và hàm nối chuỗi trắng thì chỉ được chữ Tiếng Việt nhưng công ty em mới vào làm có sử dụng tiếng Hoa thì không thêm được chuỗi trắng nhưng em không hiểu tại sao.
- Em có Demo một chữ, rất mong anh chị giúp đỡ ạ.
View attachment 283377
Em cảm ơn.
Bạn dùng hàm AddSpace như file đính kèm nhé.
Lưu ý: File có sử dụng hàm tự tạo Fuction nên lưu ý phải Enable Macro File để chạy được công thức.
 

File đính kèm

Bạn dùng hàm AddSpace như file đính kèm nhé.
Lưu ý: File có sử dụng hàm tự tạo Fuction nên lưu ý phải Enable Macro File để chạy được công thức.
Em cảm ơn chị đã quan tâm nhưng em nhập thử thì tiếng việt thì ra kết quả đúng còn tiếng Hoa bị mất mấy chữ ạ. hix
Nhờ anh/chị giúp đỡ.
 
Hình như mấy chữ này là mấy chữ Nôm, nên công thức nó không thể hiển thị được ???
Google dịch cũng bó tay ?
 
Hình như mấy chữ này là mấy chữ Nôm, nên công thức nó không thể hiển thị được ???
Google dịch cũng bó tay ?
Dạ đúng rồi ạ. Em có hỏi 1 anh làm cùng thì nó là chữ Nôm ạ.
 
Huhu. Chắc là yêu cầu này khó quá không làm được rồi.
 
Xin chào anh/chị
- Hiện tại em có bảng mã dữ liệu các chữ đang dính liền vào nhau, em muốn dùng công thức để thêm khoảng trắng sau mỗi ký tự (cụ thể như hình đính kèm). Em dùng hàm Mid và hàm nối chuỗi trắng thì chỉ được chữ Tiếng Việt nhưng công ty em mới vào làm có sử dụng tiếng Hoa thì không thêm được chuỗi trắng nhưng em không hiểu tại sao.
- Em có Demo một chữ, rất mong anh chị giúp đỡ ạ.

Em cảm ơn.
Dùng hàm tự tạo. .
Mã:
Function TachChu(ByVal str As String) As String
  Dim chCod&, tmp$, res$, N&, i&
 
  Const chNom& = -10170 'Có the nho hon -10170
  Const Sp$ = " "
  N = Len(str)
  str = str & Sp
  For i = 1 To N
    tmp = Mid(str, i, 1)
    If tmp <> Sp Then
      chCod = AscW(tmp)
      If chCod > 0 Or chCod < chNom Then
        res = res & tmp & Sp
      Else
        res = res & tmp & Mid(str, i + 1, 1) & Sp
        i = i + 1
      End If
    End If
  Next i
  TachChu = Mid(res, 1, Len(res) - 1)
End Function
 

File đính kèm

Lần chỉnh sửa cuối:
Dùng hàm tự tạo. .
Mã:
Function TachChu(ByVal str As String) As String
  Dim chCod&, tmp$, res$, N&, i&
 
  Const chNom$ = -10170 'Có the nho hon -10170
  Const Sp$ = " "
  N = Len(str)
  str = str & Sp
  For i = 1 To N
    tmp = Mid(str, i, 1)
    If tmp <> Sp Then
      chCod = AscW(tmp)
      If chCod > 0 Or chCod < chNom Then
        res = res & tmp & Sp
      Else
        res = res & tmp & Mid(str, i + 1, 1) & Sp
        i = i + 1
      End If
    End If
  Next i
  TachChu = Mid(res, 1, Len(res) - 1)
End Function
Hạy quá ạ. sao anh giỏi vậy? Em cám ơn anh nhiều ạ.
Anh ơi anh có dạy cái này không cho em đăng ký theo bái sư học đạo với ạ.
 
@HieuCD em cũng muốn bái sư :D
Chỗ
PHP:
Const chNom$ = -10170 'Có the nho hon -10170
nhờ anh giải thích thêm giúp.
Chỉ đoán theo dữ liệu hiện có
Chạy sub sau nhìn kết quả bạn sẽ hiểu
Mã:
Sub Test()
  Dim str$, res(), i&, N&
  str = Range("B2").Value
  N = Len(str)
  ReDim res(1 To N, 1 To 2)
  For i = 1 To N
    res(i, 1) = Mid(str, i, 1)
    res(i, 2) = AscW(res(i, 1))
  Next i
  Range("F2").Resize(N, 2) = res
End Sub
Bài đã được tự động gộp:

Hạy quá ạ. sao anh giỏi vậy? Em cám ơn anh nhiều ạ.
Anh ơi anh có dạy cái này không cho em đăng ký theo bái sư học đạo với ạ.
Mình chỉ lượm các code của các bạn rồi chế biến thêm
 
Dùng hàm tự tạo. .
Mã:
Function TachChu(ByVal str As String) As String
  Dim chCod&, tmp$, res$, N&, i&
 
  Const chNom$ = -10170 'Có the nho hon -10170
  Const Sp$ = " "
  N = Len(str)
  str = str & Sp
  For i = 1 To N
    tmp = Mid(str, i, 1)
    If tmp <> Sp Then
      chCod = AscW(tmp)
      If chCod > 0 Or chCod < chNom Then
        res = res & tmp & Sp
      Else
        res = res & tmp & Mid(str, i + 1, 1) & Sp
        i = i + 1
      End If
    End If
  Next i
  TachChu = Mid(res, 1, Len(res) - 1)
End Function
Chuỗi so sánh với số có kì quá không Bác @HieuCD
Const chNom$ = -10170
 
Mình khai báo nhầm, đã chỉnh lại Const chNom& = -10170
Khác dạng dữ liệu VBA vẫn so sánh được, đúng là hơi kỳ
Bạn khai báo bên biểu thức chứ. Chỉ khai báo bên biến/hằng nếu bạn cố tình muốn việc ép kiểu:
Khai bình thường:
Const chNom = -10170&
Khai ép kiểu:
Const chNom& = -10170 ' Int đổi thành Long
Const chNom& = "-10170" ' string đổi thành Long
 
Lần chỉnh sửa cuối:
Mình khai báo nhầm, đã chỉnh lại Const chNom& = -10170
Khác dạng dữ liệu VBA vẫn so sánh được, đúng là hơi kỳ
Nếu đi sâu vào mã máy thì mã sẽ thực hiện thêm vài công đoạn nữa mới so sánh được chuỗi với số đó Bác.

Mã trên cần rút ngắn lại để tiết kiệm tài nguyên máy tính.
JavaScript:
Function TachChu(b)
  Dim i&, l&, c$, x$, s$
  For i = 1 To Len(b)
    s = Mid(b, i, 1): x = x & c & s: l = AscW(s): c = " "
    If l < 0 And l >= -10170 Then i = i + 1: x = x & Mid(b, i, 1)
  Next
  TachChu = x
End Function
 
Lần chỉnh sửa cuối:
Nếu đi sâu vào mã máy thì mã sẽ thực hiện thêm vài công đoạn nữa mới so sánh được chuỗi với số đó Bác.

Mã trên cần rút ngắn lại để tiết kiệm tài nguyên máy tính.
JavaScript:
Function TachChu(b)
  Dim i&, l&, c$, x$
  For i = 1 To Len(b)
    s = Mid(b, i, 1): x = x & c & s: l = AscW(s): c = " "
    If l < 0 And l >= -10170 Then i = i + 1: x = x & Mid(b, i, 1)
  Next
  TachChu = x
End Function
Mình đã qua thời tiết kiệm dòng lệnh
Kết quả function nhìn hơi kỳ, có lệnh thực hiện nhiều lần không cần thiết
 
Web KT

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

Back
Top Bottom