Cần giúp: Thay thế bằng ký tự chỉ số trên supercript trong Word

Liên hệ QC

xuongrongdat

Có bao giờ bạn tự hỏi "Tôi là ai?"
Tham gia
30/6/08
Bài viết
1,704
Được thích
1,574
Donate (Momo)
Donate
Nghề nghiệp
Vô tư cùng bạn bè đi khắp nơi.
Mình đang cần Replace All toàn bộ "m3" thành "m3 (mét khối, số 3 chỉ số trên)" trong Word thì làm thế nào. Nhờ mọi người giúp.

Xin cảm ơn.
 
Cảm ơn bác. Dạ mà nó khác kiểu hay sao ấy bác ơi, số 3 nó nhỏ hơn bình thường luôn:
View attachment 279316

3 chữ m3 sau chữ Nguyên nhân là con làm theo kiểu của bác á. Số 3 nó nhỏ hơn bình thường 1 tí nữa nên không đồng bộ á bác.
Đơn giản nhất, bạn copy paste chính cái chữ M3 bạn muốn vào ô Replace with, bạn thử xem.
 
Ký tự số 3 cỡ font 12, bị định dạng super script, về lý thuyết thì cỡ font cũng 12. Replace bằng ký tự 179 cũng có cỡ 12. Nó phải bằng nhau. Tôi đã test kỹ.

TB:
bạn làm thế nào để ra cái "bình thường"?
 
Thêm một cách dùng code.
Mã:
Public Sub MakeOrdinalSuffixesSuperscript()
Const FIND_TEXT   As String = "([m][3])" '"([0-9])([dhnrst]{2,2})([!0-9a-zA-Z])"
Dim mySearchRange As Word.Range

    Set mySearchRange = ActiveDocument.StoryRanges(wdMainTextStory)
    With mySearchRange
        With .Find
            .ClearFormatting
            .Text = FIND_TEXT
            .Forward = True
            .Wrap = wdFindStop
            .MatchWildcards = True
            .Format = False
        End With
        Do While .Find.Execute
            .MoveStart unit:=wdCharacter, Count:=1
            .MoveEnd unit:=wdCharacter, Count:=0
            .Font.Superscript = True
            .MoveStart unit:=wdCharacter, Count:=.Characters.Count + 1
            .End = ActiveDocument.StoryRanges(wdMainTextStory).End
        Loop
    End With
End Sub
Nguồn tham khảo ở đây.
 
Ký tự số 3 cỡ font 12, bị định dạng super script, về lý thuyết thì cỡ font cũng 12. Replace bằng ký tự 179 cũng có cỡ 12. Nó phải bằng nhau. Tôi đã test kỹ.
Con chưa hiểu ý bác. Cái ký tự Alt 0179 nó nhỏ size hơn là số 3 size 12 được superscript luôn nè bác: (số 3 đầu là Alt 0179, số 3 sau là con chỉnh tay superscript)
1658910036284.png
Còn size trong văn bản công ty con quy ước theo chuẩn là từ 13 đến 14.
Thêm một cách dùng code.
Cảm ơn anh. Em mới biết trong Word cũng xài VBA được.
 
Nếu là code thì cũng góp vui.

Trong code tôi viết findtext là đoạn cần tìm, lensup là số ký tự ở cuối của findtext có superscript.

Hãy thử viết văn bản với nhiều "chandai" rồi thử code của tôi.

Mã:
Public Sub superscript_end()
Const findtext = "m3"   ' "chandai"
Const lensup = 1        ' 3
    With Selection
        .End = 0
        With .Find
            .ClearFormatting
            .Replacement.ClearFormatting
            .Text = findtext
        End With
        Do While .Find.Execute
            .Start = .End - lensup
            .Font.Superscript = True
            .Start = .End
        Loop
    End With
End Sub
 
Con chưa hiểu ý bác. Cái ký tự Alt 0179 nó nhỏ size hơn là số 3 size 12 được superscript luôn nè bác: (số 3 đầu là Alt 0179, số 3 sau là con chỉnh tay superscript)
View attachment 279344
Tôi thực hiện thì không bị như vậy, tất cả m3 hay m + 3 super script đều bị thay và đồng bộ nhỏ/ lớn
Tôi nghĩ rằng bạn không nhấn replace all mà replace từng cái. Nếu replace all thì cái 3 super script cũng bị đổi thành số 3 179

Trước:

1658913249569.png

Sau:

1658913294148.png


Nếu bạn để ý thì ở bài 2 tôi chụp hình cũng có thông báo đã replace bao nhiêu chữ. Replace thường không có thông báo này.
 
Tôi cũng thấy khác. Alt + 0179 chèn ký tự unicode có điểm mã = 00B3 được định dạng bình thường. Còn 3 được chèn với superscript là ký tự unicode có điểm mã = 0033, tức nằm trong giới hạn ASCII, được định dạng superscript. Đây là 2 ký tự unicode khác nhau có glyph khác nhau, một ký tự được định dạng bình thường còn ký tự kia được định dạng superscript. Nếu tôi chọn Times New Roman cỡ 12 thì 2 ký tự unicode dù là cùng phông chữ cỡ chữ nhưng có độ lớn vật lý khác nhau.

Ở hình sau 3 đầu tiên là ký tự unicode 00B3 được định dạng bình thường, còn 3 ở sau là ký tự unicode 0033 nhưng định dạng superscript. Do hình ảnh nhỏ nên tôi phóng to cửa sổ Word ở cỡ 260%. Tôi gõ trực tiếp 3 ký tự: m, 3 (Alt + 0179), 3 thôi chứ không gõ m3 rôi find / replace gì cả.

super.png
 
Lần chỉnh sửa cuối:
Tôi biết rằng khác. Nhưng tôi hướng dẫn ở bài 2 là thay m3 bằng m và ký tự 0179. Tôi chụp hình trong hình có chứa 1 số thông tin:
- Số 3 nếu không đi kèm m thì không bị thay thế: 3, 123, rt3
- Có thông báo "All done. We make 3 replacements",
Nghĩa là phải nhấn Replace all. Nếu nhấn replace all thì cả số 3 (0033 đang super script) cũng bị thay bằng số 3 (0179). Nếu nhấn replace từng lần thì tôi cất công replace m3 làm gì, chỉ cần replace 3 là được.

Bài kế tiếp tác giả chụp hình sự khác biệt, lúc đó tôi cứ tin tưởng rằng đã replace all mà còn lớn nhỏ, nên tôi nghi vấn cỡ font riêng của số 3 và hỏi "bình thường" là gì. Đến bây giờ tôi cũng không biết bình thường là làm sao cho ra bình thường (!):
- format super script nhưng cỡ font chữ số 3 trước khi replace lớn khác thường.
- Nhấn replace all nhưng sau đó thêm vào 1 vài m3 super script nữa
- Chỉ nhấn replace từng lần. Cái nào super script sẵn thì không replace.

Chứ việc cỏn con này mà phải dùng thủ thuật cao siêu hoặc dùng đại đao VBA thì tôi cho rằng không đáng.

Việc không đáng thứ hai và lớn nhất, đó là việc lớn/ nhỏ. Chả lẽ sếp đọc 1 báo cáo 4 trang, lấy kính lúp soi từng ký tự, lấy thước đo từng ký tự, hễ khác biệt là trừ lương trừ thưởng sao? Hay là đối tác đọc hợp đồng 5, 7 trang, cũng soi kính hiển vi, nếu lớn nhỏ khác khau thì không ký hợp đồng?

Có thể người khác gọi đó là cầu toàn, nhưng tôi gọi là cầu kỳ.
 
Lần chỉnh sửa cuối:
Chứ việc cỏn con này mà phải dùng thủ thuật cao siêu hoặc dùng đại đao VBA thì tôi cho rằng không đáng.
Tôi cũng thuộc loại người cho là nếu làm được đơn giản bằng tay thì không làm bằng code. Kể cả các việc khác. Tôi đưa code do vào chậm, cách làm bằng tay đã có người đưa ra. Và tôi cũng viết rõ
Nếu là code thì cũng góp vui.
Cũng nói thêm là nếu làm bằng tay thì tôi làm theo cách bài #5 nhưng dùng m3 -> ***³ -> m³ Nhưng sau đó tôi để ý thấy là huuthang_bd đã đề xuất nên thôi. Tôi chắc chắn sẽ không nghĩ tới Alt + 0179 vì tôi không bao giờ học thuộc lòng, và không bao giờ tôi nhớ phải gõ Alt + GÌ. Tất nhiên sau đó tôi đã kiểm tra trong Insert -> Symbol nên biết ³ có thể gõ bằng Alt + 0179 và có mã unicode = 00B3.
 
Xem cái video hướng dẫn của một anh giọng Ấn Độ xem sao. Google gợi ý cái video ngay dòng đầu tiên và dù chả hiểu ảnh nói gì nhưng tôi đã thử thành công. Rất đơn giản.
 
Cảm ơn các bác, các anh chị đã giúp đỡ. Mình đã chọn được phương án giải quyết vấn đề.
 
Và tôi cũng viết rõ
Nếu là code thì cũng góp vui.
Tôi có đọc câu ấy anh ạ, là tôi nói chung chung.
nếu làm được đơn giản bằng tay thì không làm bằng code. Kể cả các việc khác
Làm bằng tay, nếu làm như tôi ở bài 2, chỉ làm 1 lần. Dùng * hay [gì đó] phải làm 2 lần, và phải làm tay 1 số 3 super-script để dùng.

Nói thêm: Tôi cũng chẳng học thuộc con số 179 làm gì, cũng là tìm trong symbol thôi.
 
Tôi có đọc câu ấy anh ạ, là tôi nói chung chung.

Làm bằng tay, nếu làm như tôi ở bài 2, chỉ làm 1 lần. Dùng * hay [gì đó] phải làm 2 lần,

Nói thêm: Tôi cũng chẳng học thuộc con số 179 làm gì, cũng là tìm trong symbol thôi.
Tôi biết là làm 1 lần nhưng tôi đã giải thích. Tôi không bao giờ học thuộc lòng, cũng không bao giờ cố nhớ vì dung tích cái đầu có hạn. Vd. tôi viết xlUp mà không viết 3 vì tôi không nhớ nó bằng bao nhiêu. Tôi biết có thể tìm mũ 3 trong Insert -> Symbol nhưng tôi không tìm. Cách 2 lần tuy thêm 1 bước nhưng bất cứ khi nào cần tôi có thể làm ngay mà không phải bỏ công tìm trong Insert -> symbol.

Vì thế tôi sẽ làm 2 bước:
- thay m3 bằng *3 nhưng định dạng cho Replace: More -> Format -> Font -> Superscript -> OK -> Replace All
- thay * bằng m nhưng định dạng cho Replace: Format -> Font -> bỏ Superscript -> OK -> Replace All

Và nữa. Cách dùng Alt + 0179 không dùng được khi số mũ là 4, 5, 6, bất kỳ. Khi muốn trình bầy trong Word cách giải một bài toán có a2, a3, a4, ... (a lũy thừa 2, 3, 4, ...) thì trong Insert không có các lũy thừa > 3. Bởi hiếm có phông chữ nào có trong tập ký tự của mình những glyph 4, 5, 6, ... Nếu tôi không lầm thì Times New Roman không có ký tự với glyph dạng chữ số 4, 5, 6, ... nhỏ ở góc trên bên phải của "hình chữ nhật" đại diện cho vùng 1 ký tự. Trong Times New Roman không có ảnh nào như thế.
và phải làm tay 1 số 3 super-script để dùng.
Tôi không hiểu ý anh. Như tôi trình bầy ở trên thì có phải tạo bằng tay "1 số 3 super-script" đâu nhỉ.
 
Lần chỉnh sửa cuối:
- thay m3 bằng *3 nhưng định dạng cho Replace: More -> Format -> Font -> Superscript -> OK -> Replace All

Tôi không hiểu ý anh. Như tôi trình bầy ở trên thì có phải tạo bằng tay "1 số 3 super-script" đâu nhỉ.
Tôi hiểu ý anh về symbol rồi. Còn câu hỏi của anh thì ở chỗ tô đỏ mà tôi trích dẫn.
 
Tôi hiểu ý anh về symbol rồi. Còn câu hỏi của anh thì ở chỗ tô đỏ mà tôi trích dẫn.
Không dùng Alt + 0179 thì phải thế thôi. Mà người dùng Word nên biết là Find có thể không chỉ tìm ký tự mà còn tìm cả mầu chữ, nền, dùng regex, ... Nếu họ chịu khó đọc thì họ sẽ thấy Find của Word phong phú hơn của Excel rất rất nhiều. Chịu khó một chút thì sẽ biết nhiều.
 
Web KT
Back
Top Bottom