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

 Як перетворити текстовий рядок у правильний регістр за винятками в Excel?

В Excel ви можете застосувати функцію належного перетворення текстових рядків у відповідний регістр, але, іноді, вам потрібно виключити деякі конкретні слова при перетворенні текстових рядків у відповідний регістр, як показано на наступному знімку екрана. У цій статті я розповім про декілька швидких прийомів для вирішення цієї роботи в Excel.

Перетворіть текстові рядки у правильний регістр за винятками, використовуючи формулу

Перетворіть текстові рядки у правильний регістр, за винятком, використовуючи код VBA


Перетворіть текстові рядки у правильний регістр за винятками, використовуючи формулу

Можливо, наступна формула може допомогти вам швидко впоратися з цим завданням, будь ласка, зробіть так:

Введіть цю формулу:

= ВЕРХНІЙ (ВЛІВО (A2)) І ПОЛІДНИЙ (ОБРІЗКА (ЗАМІНА (ЗАМІНА (ЗАМІНА (ЗАМІНА (ЗАМІНА (ЗАМІНА " "," є ")," США "," США ")), 2, LEN (A2)) у клітинку, де ви хочете отримати результат, а потім перетягніть маркер заповнення, щоб заповнити цю формулу, і текстові рядки були перетворені належним регістром, але конкретні винятки, див. знімок екрана:

примітки: У наведеній вище формулі, A2 це комірка, яку потрібно перетворити, “З”, “А”, “Є”, “США” є нормальними правильними регістровими словами після перетворення, “З”, “а”, “є”, “США” - це слова, які ви хочете виключити з належного регістру. Ви можете змінити їх відповідно до своїх потреб або додати інші слова за допомогою функції ЗАМІНИ.


Перетворіть текстові рядки у правильний регістр, за винятком, використовуючи код VBA

Якщо вищезазначену формулу дещо важко зрозуміти та змінити відповідно до ваших потреб, тут ви також можете застосувати код VBA для завершення цього завдання. Будь ласка, виконайте наступні кроки по одному.

1. Утримуйте клавішу ALT + F11 ключі, щоб відкрити Microsoft Visual Basic для додатків вікна.

2. Клацання Insert > Модуліта вставте наступний код у Вікно модуля.

Код 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%

  • Повторне використання: Швидко вставте складні формули, діаграми і все, що ви використовували раніше; Шифрувати комірки з паролем; Створити список розсилки та надсилати електронні листи ...
  • Супер формула бар (легко редагувати кілька рядків тексту та формули); Макет читання (легко читати та редагувати велику кількість комірок); Вставте у відфільтрований діапазон...
  • Об’єднати клітинки / рядки / стовпці без втрати даних; Вміст розділених комірок; Об'єднати повторювані рядки / стовпці... Запобігання дублюючим клітинам; Порівняйте діапазони...
  • Виберіть Повторюваний або Унікальний Рядки; Виберіть Пусті рядки (усі клітинки порожні); Супер знахідка та нечітка знахідка у багатьох робочих зошитах; Випадковий вибір ...
  • Точна копія Кілька клітинок без зміни посилання на формулу; Автоматичне створення посилань на кілька аркушів; Вставте кулі, Прапорці та інше ...
  • Витяг тексту, Додати текст, Видалити за позицією, Видаліть пробіл; Створення та друк проміжних підсумків підкачки; Перетворення вмісту комірок та коментарів...
  • Супер фільтр (зберегти та застосувати схеми фільтрів до інших аркушів); Розширене сортування за місяцем / тижнем / днем, частотою та іншим; Спеціальний фільтр жирним, курсивом ...
  • Поєднайте робочі зошити та робочі аркуші; Об’єднати таблиці на основі ключових стовпців; Розділіть дані на кілька аркушів; Пакетне перетворення xls, xlsx та PDF...
  • Понад 300 потужних функцій. Підтримує Office / Excel 2007-2021 і 365. Підтримує всі мови. Легке розгортання на вашому підприємстві чи в організації. 30-денна безкоштовна пробна версія повних функцій. 60-денна гарантія повернення грошей.
вкладка kte 201905

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (1)
Поки немає оцінок. Оцініть першим!
Цей коментар був мінімізований модератором на сайті
Це було б дивовижно, якби макрос виключив лише частину жала в CAPS, а не всю клітинку зі списку винятків.
There are no comments posted here yet
Залишайте свої коментарі
Публікація як гість
×
Оцініть цю публікацію:
0   Персонажі
Рекомендовані місця

Слідуй за нами

Copyright © 2009 - WWW.extendoffice.com. | Всі права захищені. На основі ExtendOffice. | Карта сайту
Microsoft та логотип Office є товарними знаками або зареєстрованими товарними знаками Microsoft Corporation у США та / або інших країнах.
Захищений Sectigo SSL