Как стандартизировать тексты в вашей электронной таблице с помощью Excel VBA

Поделись сейчас:

Мы все видели имена и адреса электронных таблиц в разных форматах, таких как ДЖЕЙМС ДЖОНС, САРА БЕРНАРДТ или клинт Иствуд, и все они выглядят дилетантски в отчете. В этой статье показано, как правильно стандартизировать текст на листе.

В этой статье предполагается, что у читателя отображается лента «Разработчик» и он знаком с редактором VBA. Если нет, погуглите «Excel Developer Tab» или «Excel Code Window».

Файл Excel можно найти здесь

В этом упражнении мы создадим функцию, способную в значительной степени распознавать намерения пользователя. Например, правильная функция Excel сократит «НАФТА» до «Нафта». в rarВ случае, когда кто-то вводит «вооруженные силы США», функция не сможет определить намерение, поскольку у нее нет словаря акронимов, и вполне корректно изменит его на «Вооруженные силы США». Таким образом, некоторые негодяи проскользнут через сеть.

Что делает функция

Текст разделен на две части, по одной с каждой стороны от первого пробела. Поэтому «Вооруженные силы США» становятся предварительной строкой, состоящей из «США» и apost-строка «Вооруженные силы».

  • Если в p есть хотя бы один символ нижнего регистраost-string, то разумно предположить, что Caps Lock не был случайно оставлен включенным во время захвата. рostТаким образом, строка будет отформатирована в правильном регистре.
  • Если второй символ предстроки в верхнем регистре, то мы можем разумно предположить, что вся предстрока должна быть написана с большой буквы.

Данные

Создайте новую рабочую книгу. Откройте окно кода VBA и вставьте модуль.

Вставьте следующие данные в первую ячейку листа A1.

Организация Правильный случай
Вооружённые силы США
вооруженные силы США
комитет ЮНЕСКО
БАРРИ ДЖОНС
Барри Джонс
1213456
алан кортни
НАФТА
301 столичный дом

Переименуйте этот лист в «Основной».

Код.

Скопируйте и вставьте следующее в окно кода VBA книги:Код VBA

Параметр Явный Dim strText As String Dim preString As String Dim postString As String Dim uCount As String Dim lCount As String Dim b As Integer Dim i As Integer Dim char2 As String Sub Main() Dim strText As String Dim cRow As Integer 'Текущая строка cRow = 2 Sheets ("Main"). Выберите диапазон («A2»). Выберите «Выполнить, пока ActiveCell» > «» strText = ActiveCell strText = fProper (strText) Cells (cRow, 2) = strText cRow = cRow + 1 Cells (cRow, 1). Выберите подфункцию конца цикла fProper (strTxt As String) strText = strTxt uCount = 0 lCount = 0 'Искать первый пробел. b = InStr(1, strText, " ") 'Проверить, ЕСТЬ ли пробел Если b > 0, то preString = Left(strText, b - 1) postString = Mid(strText, b, (Len(strText) - b) + 1) 'Перейти через post-нить; 'по крайней мере 1 символ нижнего регистра будет означать, что Caps Lock не был включен For i = 1 To Len(postСтрока) Выберите регистр Asc (Mid (postString, i, 1)) Case 65 - 90 uCount = uCount + 1 Case 97 - 122 lCount = lCount + 1 Case Else End Select If lCount > 0 Then Exit For 'Не продолжать, если найден символ нижнего регистра Next i If lCount > 0 Тогда рostСтрока = StrConv(postСтрока, 3) '3=правильный регистр, 2=нижний регистр, 1=верхний регистр 'Если 2-й символ предстроки в верхнем регистре, разумно 'предполагать, что вся предстрока тоже должна быть в верхнем регистре. char2 = Mid(preString, 2, 1) If Asc(char2) >= 65 And Asc(char2) <= 90 Then preString = StrConv(preString, 1) 'вся предстрока является верхней Else preString = StrConv(preString, 3 ) 'предварительная строка является правильной End If Else preString = StrConv(preString, 3) ' Нижний регистр не найден, застрял Caps Lock; пostСтрока = StrConv(postString, 3) 'Сократить всю строку до правильного End If fProper = preString & postString 'Сложите два элемента вместе Else 'Пространство не найдено, разумное предположение относительно регистра не может быть сделано;. 'передать строку обратно без изменений. fProper = strText End If End Function

Добавьте кнопку на лист «Главная» и назначьте ее подпроцедуре «Главная».Добавить кнопку на лист Main

Результаты

Нажмите кнопку, затем просмотрите результаты в столбце B листа.

Восстановление поврежденных книг

Время от времени Excel, как мost программное обеспечение, вылетит. Обычные процедуры восстановления, которые Excel использует для восстановления книги, чаще всего дают сбой. В такие моменты было бы полезно иметь инструмент для выполнения Восстановление Excel для файлов xlsx или xlsm.

Об авторе:

Феликс Хукер — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая rar ремонт и программные продукты для восстановления sql. Для получения дополнительной информации посетите www.datanumen.com

Поделись сейчас:

Оставьте комментарий

Ваш электронный адрес не будет опубликован. Обязательные поля помечены * *