Как извлечь заглавные буквы или слова, начинающиеся с заглавной буквы, из текстовых строк?
Если у вас есть список текстовых строк и вы хотите извлечь только заглавные буквы или слова, начинающиеся с заглавной буквы, из ячеек в Excel — как это можно сделать?
Извлечение заглавных букв из текстовых строк с помощью пользовательской функции
Извлечение заглавных букв из текстовых строк с помощью пользовательской функции
Следующий код VBA поможет вам извлечь только заглавные буквы из ячеек. Выполните следующие действия:
1. Нажмите и удерживайте клавиши ALT + F11, чтобы открыть окно Microsoft Visual Basic for Applications.
2 Нажмите Вставка > Модуль и вставьте следующий код в окно Модуля.
Код VBA: извлечение только заглавных букв из текстовых строк:
Function ExtractCap(Txt As String) As String
'Updateby Extendoffice
Application.Volatile
Dim xRegEx As Object
Set xRegEx = CreateObject("VBSCRIPT.REGEXP")
xRegEx.Pattern = "[^A-Z]"
xRegEx.Global = True
ExtractCap = xRegEx.Replace(Txt, "")
Set xRegEx = Nothing
End Function
3. Сохраните код и закройте окно редактора. Вернитесь на лист и введите формулу: =EXTRACTCAP(A2) в пустую ячейку, где должен отображаться результат, затем протяните маркер заполнения вниз до последней ячейки, к которой нужно применить эту формулу. Все заглавные буквы будут извлечены мгновенно. См. снимок экрана:

Извлечение слов, начинающихся с заглавной буквы, из текстовых строк с помощью пользовательской функции
Если вам нужно извлечь слова, начинающиеся с заглавной буквы, из текстовых строк, следующий код VBA придётся как нельзя кстати.
1. Удерживая нажатыми клавиши ALT + F11, откройте окно Microsoft Visual Basic for Applications.
2. Нажмите Вставка > Модуль, затем скопируйте и вставьте следующий код в окно Модуля.
Код VBA: извлечение слов, начинающихся с заглавной буквы:
Function StrExtract(Str As String) As String
'Updateby Extendoffice
Application.Volatile
Dim xStrList As Variant
Dim xRet As String
Dim I As Long
If Len(Str) = 0 Then Exit Function
xStrList = Split(Str, " ")
If UBound(xStrList) >= 0 Then
For I = 0 To UBound(xStrList)
If xStrList(I) = StrConv(xStrList(I), vbProperCase) Then
xRet = xRet & xStrList(I) & " "
End If
Next
StrExtract = Left(xRet, Len(xRet) - 1)
End If
End Function
3. Затем сохраните код и закройте окно редактора. Введите формулу: =StrExtract(A2) в пустую ячейку рядом с вашими данными, а затем протяните маркер заполнения вниз до последней строки с данными. Все слова, начинающиеся с заглавной буквы, будут автоматически извлечены. См. снимок экрана:

Лучшие инструменты повышения продуктивности в Office
Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…
Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
- Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!
Все надстройки Kutools — один установщик
Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.
- Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек