Przejdź do głównej zawartości

 Jak przekonwertować ciąg tekstowy na odpowiednią wielkość liter z wyjątkami w programie Excel?

W programie Excel możesz zastosować funkcję Właściwa, aby łatwo przekonwertować ciągi tekstowe na odpowiednią wielkość liter, ale czasami trzeba wykluczyć niektóre określone słowa podczas konwersji ciągów tekstowych na odpowiednią wielkość, jak pokazano na zrzucie ekranu. W tym artykule omówię kilka szybkich sztuczek, aby rozwiązać tę pracę w programie Excel.

Konwertuj ciągi tekstowe na odpowiednie wielkości liter z wyjątkami przy użyciu formuły

Konwertuj ciągi tekstowe na odpowiednie wielkości liter z wyjątkami przy użyciu kodu VBA


Konwertuj ciągi tekstowe na odpowiednie wielkości liter z wyjątkami przy użyciu formuły

Poniższa formuła może pomóc w szybkim rozwiązaniu tego zadania, wykonaj następujące czynności:

Wprowadź tę formułę:

= UPPER (LEFT (A2)) & MID (TRIM (SUBSTITUTE (SUBSTITUTE (SUBSTITUTE (SUBSTITUTE ("" & PROPER (A2)) & "", "Of", "of"), "A", "a"), "Is „,” to ”),„ USA ”,„ USA ”)), 2, LEN (A2)) do komórki, w której chcesz uzyskać wynik, a następnie przeciągnij uchwyt wypełniania, aby wypełnić tę formułę, a ciągi tekstowe zostały przekonwertowane na odpowiednią wielkość liter, ale z określonymi wyjątkami, patrz zrzut ekranu:

Note: W powyższym wzorze, A2 to komórka, którą chcesz przekonwertować, „Of”, „A”, „Is”, „Usa” są zwykłymi słowami z literami po konwersji, „Z”, „a”, „jest”, „USA” to słowa, które chcesz wykluczyć z właściwego przypadku. Możesz je zmienić według swoich potrzeb lub dodać inne słowa za pomocą funkcji PODSTAW.


Konwertuj ciągi tekstowe na odpowiednie wielkości liter z wyjątkami przy użyciu kodu VBA

Jeśli powyższa formuła jest nieco trudna do zrozumienia i zmiany w zależności od potrzeb, tutaj możesz również zastosować kod VBA, aby zakończyć to zadanie. Wykonaj kolejno poniższe kroki.

1. Przytrzymaj ALT + F11 klawisze, aby otworzyć Microsoft Visual Basic for Applications okno.

2. Kliknij wstawka > Modułi wklej następujący kod w Okno modułu.

Kod VBA: konwertuj ciągi tekstowe na właściwy przypadek z wyjątkami:

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. Następnie naciśnij F5 klucz do uruchomienia tego kodu i pojawia się okienko zachęty przypominające o wybraniu oryginalnych komórek, które chcesz przekonwertować, patrz zrzut ekranu:

4. A następnie kliknij OK, wybierz komórki, w których chcesz wyprowadzić wyniki w wyskakującym polu, zobacz zrzut ekranu:

5. Kliknij OKiw wyskakującym oknie dialogowym wybierz teksty, które chcesz wykluczyć, zobacz zrzut ekranu:

6. A następnie kliknij OK aby wyjść z okien dialogowych, a wszystkie ciągi tekstowe zostały przekonwertowane na odpowiednią wielkość, ale z wyłączeniem określonych słów, patrz zrzut ekranu:

Najlepsze narzędzia biurowe

🤖 Pomocnik AI Kutools: Zrewolucjonizuj analizę danych w oparciu o: Inteligentne wykonanie   |  Wygeneruj kod  |  Twórz niestandardowe formuły  |  Analizuj dane i generuj wykresy  |  Wywołaj funkcje Kutools...
Popularne funkcje: Znajdź, wyróżnij lub zidentyfikuj duplikaty   |  Usuń puste wiersze   |  Łącz kolumny lub komórki bez utraty danych   |   Okrągły bez wzoru ...
Super wyszukiwanie: Wiele kryteriów VLookup    Wiele wartości VLookup  |   Przeglądanie pionowe na wielu arkuszach   |   Wyszukiwanie rozmyte ....
Zaawansowana lista rozwijana: Szybko twórz listę rozwijaną   |  Zależna lista rozwijana   |  Lista rozwijana wielokrotnego wyboru ....
Menedżer kolumn: Dodaj określoną liczbę kolumn  |  Przesuń kolumny  |  Przełącz stan widoczności ukrytych kolumn  |  Porównaj zakresy i kolumny ...
Polecane funkcje: Fokus siatki   |  Widok projektu   |   Duży pasek formuły    Menedżer skoroszytów i arkuszy   |  Biblioteka zasobów (Automatyczny tekst)   |  Selektor dat   |  Połącz arkusze   |  Szyfruj/odszyfruj komórki    Wysyłaj e-maile według listy   |  Super filtr   |   Specjalny filtr (filtruj pogrubienie/kursywa/przekreślenie...) ...
15 najlepszych zestawów narzędzi12 Tekst Tools (Dodaj tekst, Usuń znaki, ...)   |   50 + Wykres rodzaje (Wykres Gantta, ...)   |   40+ Praktyczne Wzory (Oblicz wiek na podstawie urodzin, ...)   |   19 Wprowadzenie Tools (Wstaw kod QR, Wstaw obraz ze ścieżki, ...)   |   12 Konwersja Tools (Liczby na słowa, Przeliczanie walut, ...)   |   7 Połącz i podziel Tools (Zaawansowane wiersze łączenia, Podział komórki, ...)   |   ... i więcej

Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas.  Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...

Opis


Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
This would be amazing if only the Macro excluded the part of the sting in CAPS not the entire cell from the exceptions list.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations