Note: The other languages of the website are Google-translated. Back to English
English English

 วิธีการแปลงสตริงข้อความเป็นกรณีที่เหมาะสมโดยมีข้อยกเว้นใน Excel

ใน Excel คุณสามารถใช้ฟังก์ชันที่เหมาะสมเพื่อแปลงสตริงข้อความเป็นกรณีที่เหมาะสมได้อย่างง่ายดาย แต่บางครั้งคุณต้องยกเว้นคำบางคำเมื่อแปลงสตริงข้อความเป็นกรณีที่เหมาะสมดังภาพหน้าจอต่อไปนี้ บทความนี้ฉันจะพูดถึงเทคนิคด่วนบางอย่างในการแก้งานนี้ใน Excel

แปลงสตริงข้อความเป็นกรณีที่เหมาะสมโดยมีข้อยกเว้นโดยใช้สูตร

แปลงสตริงข้อความเป็นกรณีที่เหมาะสมโดยมีข้อยกเว้นโดยใช้รหัส VBA


แปลงสตริงข้อความเป็นกรณีที่เหมาะสมโดยมีข้อยกเว้นโดยใช้สูตร


อาจเป็นสูตรต่อไปนี้สามารถช่วยคุณจัดการกับงานนี้ได้อย่างรวดเร็วโปรดทำตามนี้:

ใส่สูตรนี้:

= UPPER (LEFT (A2)) & MID (TRIM (SUBSTITUTE (SUBSTITUTE (SUBSTITUTE ("" & PROPER (A2) & "", "Of", "of"), "A", "a"), "Is "," คือ ")," Usa "," USA ")), 2, LEN (A2)) ลงในเซลล์ที่คุณต้องการรับผลลัพธ์จากนั้นลากที่จับเติมเพื่อเติมสูตรนี้และสตริงข้อความได้รับการแปลงกรณีที่เหมาะสม แต่มีข้อยกเว้นเฉพาะดูภาพหน้าจอ:

หมายเหตุ: ในสูตรข้างต้น A2 คือเซลล์ที่คุณต้องการแปลง “ ของ”,“ ก”,“ เป็น”,“ อุษา” เป็นคำกรณีปกติที่เหมาะสมหลังจากการแปลง “ ของ”,“ ก”,“ คือ”,“ สหรัฐอเมริกา” คือคำที่คุณต้องการแยกออกจากกรณีที่เหมาะสม คุณสามารถเปลี่ยนเป็นความต้องการของคุณหรือเพิ่มคำอื่น ๆ ด้วยฟังก์ชัน SUBSTITUTE


แปลงสตริงข้อความเป็นกรณีที่เหมาะสมโดยมีข้อยกเว้นโดยใช้รหัส VBA

หากสูตรข้างต้นค่อนข้างยากที่จะเข้าใจและเปลี่ยนแปลงตามความต้องการของคุณที่นี่คุณสามารถใช้รหัส VBA เพื่อทำงานนี้ให้เสร็จได้ โปรดทำตามขั้นตอนต่อไปนี้ทีละขั้นตอน

1. กด ALT + F11 คีย์เพื่อเปิด Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง

2. คลิก สิ่งที่ใส่เข้าไป > โมดูลและวางรหัสต่อไปนี้ในไฟล์ หน้าต่างโมดูล.

รหัส VBA: แปลงสตริงข้อความเป็นกรณีที่เหมาะสมโดยมีข้อยกเว้น:

Sub CellsValueChange()
'Updateby Extendoffice
    Dim xSRg As Range
    Dim xDRg As Range
    Dim xPRg As Range
    Dim xSRgArea As Range
    Dim xRgVal As String
    Dim xAddress As String
    Dim I As Long
    Dim K As Long
    Dim KK As Long
    On Error Resume Next
    xAddress = Application.ActiveWindow.RangeSelection.Address
    Set xSRg = Application.InputBox("Original cells:", "KuTools For Excel", xAddress, , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    Set xDRg = Application.InputBox("Output cells:", "KuTools For Excel", , , , , , 8)
    If xDRg Is Nothing Then Exit Sub
    Set xPRg = Application.InputBox("Cells to exclude:", "KuTools For Excel", , , , , , 8)
    If xPRg Is Nothing Then Exit Sub
    Set xDRg = xDRg(1)
    For I = 1 To xSRg.Areas.Count
        Set xSRgArea = xSRg.Areas.Item(I)
        For K = 1 To xSRgArea.Count
            xRgVal = xSRgArea(K).Value
            If Not IsNumeric(xRgVal) Then
                xRgVal = CorrectCase(xRgVal, xPRg)
                xDRg.Offset(KK).Value = xRgVal
            End If
            KK = KK + 1
        Next
    Next
End Sub
Function CorrectCase(ByVal xRgVal As String, ByVal xPRg As Range) As String
    Dim xArrWords As Variant
    Dim I As Integer
    Dim xPointer As Integer
    Dim xVal As String
    xPointer = 1
    xVal = xRgVal
    xArrWords = WordsOf(xRgVal)
    For I = 0 To UBound(xArrWords)
        xPointer = InStr(xPointer, " " & xVal, " " & xArrWords(I))
        Debug.Print xPointer
        Mid(xVal, xPointer) = CorrectCaseOneWord(CStr(xArrWords(I)), xPRg)
    Next I
    CorrectCase = xVal
End Function
Function WordsOf(xRgVal As String) As Variant
    Dim xDelimiters As Variant
    Dim xArrRtn As Variant
    xDelimiters = Array(",", ".", ";", ":", Chr(34), vbCr, vbLf)
    For Each xEachDelimiter In xDelimiters
        xRgVal = Application.WorksheetFunction.Substitute(xRgVal, xEachDelimiter, " ")
    Next xEachDelimiter
    xArrRtn = Split(Trim(xRgVal), " ")
    WordsOf = xArrRtn
End Function
Function CorrectCaseOneWord(xArrWord As String, xERg As Range) As String
    With xERg
        If IsError(Application.Match(xArrWord, .Cells, 0)) Then
            CorrectCaseOneWord = Application.Proper(xArrWord)
        Else
            CorrectCaseOneWord = Application.VLookup(xArrWord, .Cells, 1, 0)
        End If
    End With
End Function

3. จากนั้นกด F5 คีย์เพื่อเรียกใช้รหัสนี้และกล่องพร้อมต์จะปรากฏขึ้นเพื่อเตือนให้คุณเลือกเซลล์ดั้งเดิมที่คุณต้องการแปลงดูภาพหน้าจอ:

4. จากนั้นคลิก OKเลือกเซลล์ที่คุณต้องการแสดงผลลัพธ์ในกล่องที่โผล่ออกมาดูภาพหน้าจอ:

5. คลิกเลย OKและในกล่องโต้ตอบป๊อปอัปเลือกข้อความที่คุณต้องการยกเว้นดูภาพหน้าจอ:

6. จากนั้นคลิก OK เพื่อออกจากกล่องโต้ตอบและสตริงข้อความทั้งหมดได้รับการแปลงเป็นกรณีที่เหมาะสม แต่ไม่รวมคำที่ระบุดูภาพหน้าจอ:


เครื่องมือเพิ่มประสิทธิภาพการทำงานในสำนักงานที่ดีที่สุด

Kutools สำหรับ Excel ช่วยแก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%

  • นำมาใช้ใหม่: ใส่อย่างรวดเร็ว สูตรที่ซับซ้อนแผนภูมิ และสิ่งที่คุณเคยใช้มาก่อน เข้ารหัสเซลล์ ด้วยรหัสผ่าน; สร้างรายชื่อผู้รับจดหมาย และส่งอีเมล ...
  • ซุปเปอร์ฟอร์มูล่าบาร์ (แก้ไขข้อความและสูตรหลายบรรทัดได้อย่างง่ายดาย); การอ่านเค้าโครง (อ่านและแก้ไขเซลล์จำนวนมากได้อย่างง่ายดาย); วางลงในช่วงที่กรองแล้ว...
  • ผสานเซลล์ / แถว / คอลัมน์ โดยไม่สูญเสียข้อมูล แยกเนื้อหาของเซลล์ รวมแถว / คอลัมน์ที่ซ้ำกัน... ป้องกันเซลล์ซ้ำ; เปรียบเทียบช่วง...
  • เลือกซ้ำหรือไม่ซ้ำ แถว; เลือกแถวว่าง (เซลล์ทั้งหมดว่างเปล่า); Super Find และ Fuzzy Find ในสมุดงานจำนวนมาก สุ่มเลือก ...
  • สำเนาถูกต้อง หลายเซลล์โดยไม่เปลี่ยนการอ้างอิงสูตร สร้างการอ้างอิงอัตโนมัติ ถึงหลายแผ่น ใส่สัญลักษณ์แสดงหัวข้อย่อย, กล่องกาเครื่องหมายและอื่น ๆ ...
  • แยกข้อความ, เพิ่มข้อความ, ลบตามตำแหน่ง, ลบ Space; สร้างและพิมพ์ผลรวมย่อยของเพจ แปลงระหว่างเนื้อหาของเซลล์และความคิดเห็น...
  • ซุปเปอร์ฟิลเตอร์ (บันทึกและใช้โครงร่างตัวกรองกับแผ่นงานอื่น ๆ ); การเรียงลำดับขั้นสูง ตามเดือน / สัปดาห์ / วันความถี่และอื่น ๆ ตัวกรองพิเศษ โดยตัวหนาตัวเอียง ...
  • รวมสมุดงานและแผ่นงาน; ผสานตารางตามคอลัมน์สำคัญ แยกข้อมูลออกเป็นหลายแผ่น; Batch แปลง xls, xlsx และ PDF...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ. รองรับ Office / Excel 2007-2019 และ 365 รองรับทุกภาษา ใช้งานง่ายในองค์กรหรือองค์กรของคุณ ทดลองใช้ฟรี 30 วันเต็ม รับประกันคืนเงิน 60 วัน
kte แท็บ 201905

แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มผลผลิตของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (1)
ยังไม่มีการให้คะแนน เป็นคนแรกที่ให้คะแนน!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
นี่คงจะน่าทึ่งถ้ามีเพียงมาโครเท่านั้นที่ไม่รวมส่วนของต่อยใน CAPS ไม่ใช่ทั้งเซลล์จากรายการข้อยกเว้น
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ