Option Explicit
Sub FormatFont()
Dim J As Long, Rws As Long, VTr As Byte, Hgt As Double, W As Byte, DDai As Integer
Rws = [i999].End(xlUp).Row
For J = 1 To Rws
With Cells(J, "I")
VTr = 0
For W = 1 To 2
DDai = Len(.Value)
VTr = InStr(VTr + W, .Value, "m2")
.Value = Left(.Value, VTr - 1) & " " & Mid(.Value, VTr, 99)
With .Characters(Start:=VTr + 2, Length:=1).Font
.Size = .Size + 1
.Superscript = True
End With
If VTr + 9 > DDai Then Exit For
Next W
End With
Next J
End Sub
Code này cho kết quả thì khỏi chê rồi, nhưng sao thầy không cho phép chọn vùng cần Fomat luôn cho nó tổng quát. Code này chỉ cho Fomat ở cột I thôi!PHP:Option Explicit Sub FormatFont() Dim J As Long, Rws As Long, VTr As Byte, Hgt As Double, W As Byte, DDai As Integer Rws = [i999].End(xlUp).Row For J = 1 To Rws With Cells(J, "I") VTr = 0 For W = 1 To 2 DDai = Len(.Value) VTr = InStr(VTr + W, .Value, "m2") .Value = Left(.Value, VTr - 1) & " " & Mid(.Value, VTr, 99) With .Characters(Start:=VTr + 2, Length:=1).Font .Size = .Size + 1 .Superscript = True End With If VTr + 9 > DDai Then Exit For Next W End With Next J End Sub
Cảm ơn bác đã trả lời giúp tôi rất sớm. Xong có điều muốn hỏi rõ hơn chút vì mình k phải dân công nghệ màPHP:Option Explicit Sub FormatFont() Dim J As Long, Rws As Long, VTr As Byte, Hgt As Double, W As Byte, DDai As Integer Rws = [i999].End(xlUp).Row For J = 1 To Rws With Cells(J, "I") VTr = 0 For W = 1 To 2 DDai = Len(.Value) VTr = InStr(VTr + W, .Value, "m2") .Value = Left(.Value, VTr - 1) & " " & Mid(.Value, VTr, 99) With .Characters(Start:=VTr + 2, Length:=1).Font .Size = .Size + 1 .Superscript = True End With If VTr + 9 > DDai Then Exit For Next W End With Next J End Sub
Cảm ơn bác; Song có điều muốn hỏi rõ hơn chút vì k phải dân công nghệ
(1) - Các chữ m2 ở dòng có chữ diện tích ==> Cái này OK rồi k phải sửa lại, nhưng hình như chạy xong code của bác nó lại cách ra thêm 1 kí tự trắng nữa thì phải - Nếu vậy thành ra nó bị cách ra 2 kí tự trắng mất r. Dòng này giữ nguyên?
(2) - Mình muốn áp dụng đổi hàng loạt cho toàn bộ văn bản nhưng hình như bác mới viết code áp dụng cho cột I, và (3) các kí tự m2 vẫn chưa đổi được hết thì phải
Rất mong hồi âm bác !
Mình có 1 file gửi kèm. Mình muốn thay thế nhưng k biết diễn tả thế nào. Các bác vào xem file và giải quyết giúp cho e với. E có ghi miêu tả cụ thể trong file rồi
Cảm ơn anh em, cảm ơn diễn đàn
Sub Main()
Dim Cel As Range
For Each Cel In Selection
Cel.Value = Replace(Cel.Value, "m2", " m²")
Cel.Value = WorksheetFunction.Trim(Cel.Value)
Next
End Sub
Code rất ngắn lại cho kết quả nhanh và chính xác, cảm ơn thầy nhiều. Đúng là học được từ thầy rất nhiều điều. Nhưng cho em hỏi là kí hiệu " m²" trong VBA viết như thế nào vậy thầy?Viết code đơn giản thế này cho dễ xài:
Cách dùng: Quét chọn vùng dữ liệu rồi chạy codeMã:Sub Main() Dim Cel As Range For Each Cel In Selection Cel.Value = Replace(Cel.Value, "m2", " m²") Cel.Value = WorksheetFunction.Trim(Cel.Value) Next End Sub
Bạn nhập ký tự m xong thì bấm tổ hợp fím Alt0178Nhưng cho em hỏi là kí hiệu " m²" trong VBA viết như thế nào vậy thầy?
Bạn có thể cho mình xin mã của các số mũ khác được không? Ví dụ mũ 3;4; 5...Bạn nhập ký tự m xong thì bấm tổ hợp fím Alt0178
Sau khi bạn nhập " m, bạn nhấn phím Alt rồi gõ tiếp 4 con số 0178 (bằng bàn phím số bên tay phải), rồi đóng dấu móc kép (") lại.Nhưng cho em hỏi là kí hiệu " m²" trong VBA viết như thế nào vậy thầy?
Bảng này tôi lấy từ diễn đàn GPE, bạn thử tham khảoBạn có thể cho mình xin mã của các số mũ khác được không? Ví dụ mũ 3;4; 5...