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

 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:

Uwagi: 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

Kutools dla programu Excel rozwiązuje większość problemów i zwiększa produktywność o 80%

  • Ponowne użycie: Szybko włóż złożone wzory, wykresy i wszystko, czego używałeś wcześniej; Szyfruj komórki z hasłem; Utwórz listę mailingową i wysyłaj e-maile ...
  • Pasek Super Formula (łatwo edytować wiele wierszy tekstu i formuły); Układ do czytania (łatwe odczytywanie i edytowanie dużej liczby komórek); Wklej do filtrowanego zakresu...
  • Scal komórki / wiersze / kolumny bez utraty danych; Podziel zawartość komórek; Połącz zduplikowane wiersze / kolumny... Zapobiegaj zduplikowanym komórkom; Porównaj zakresy...
  • Wybierz Duplikat lub Unikalny Wydziwianie; Wybierz puste wiersze (wszystkie komórki są puste); Super Find i Fuzzy Find w wielu zeszytach ćwiczeń; Losowy wybór ...
  • Dokładna kopia Wiele komórek bez zmiany odwołania do formuły; Automatyczne tworzenie odniesień do wielu arkuszy; Wstaw punktory, Pola wyboru i nie tylko ...
  • Wyodrębnij tekst, Dodaj tekst, Usuń według pozycji, Usuń przestrzeń; Tworzenie i drukowanie podsumowań stronicowania; Konwertuj zawartość komórek i komentarze...
  • Super filtr (zapisz i zastosuj schematy filtrów do innych arkuszy); Zaawansowane sortowanie według miesiąca / tygodnia / dnia, częstotliwości i innych; Specjalny filtr pogrubieniem, kursywą ...
  • Połącz skoroszyty i arkusze robocze; Scal tabele na podstawie kluczowych kolumn; Podziel dane na wiele arkuszy; Konwersja wsadowa xls, xlsx i PDF...
  • Ponad 300 zaawansowanych funkcji. Obsługuje Office / Excel 2007-2021 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowa bezpłatna wersja próbna. 60-dniowa gwarancja zwrotu pieniędzy.
karta kte 201905

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!
officetab dół
Sortuj komentarze według
Komentarze (1)
Brak ocen. Oceń jako pierwszy!
Ten komentarz został zminimalizowany przez moderatora na stronie
Byłoby to niesamowite, gdyby tylko makro wykluczało część żądła w CAPS, a nie całą komórkę z listy wyjątków.
Nie ma tu jeszcze żadnych komentarzy

Bądż na bieżąco

Prawa autorskie © 2009 - www.extendoffice.com. | Wszelkie prawa zastrzeżone. Zasilany przez ExtendOffice, | Mapa strony
Microsoft i logo Office są znakami towarowymi lub zastrzeżonymi znakami towarowymi Microsoft Corporation w Stanach Zjednoczonych i / lub innych krajach.
Chronione przez Sectigo SSL