Мы все видели имена и адреса электронных таблиц в разных форматах, таких как ДЖЕЙМС ДЖОНС, САРА БЕРНАРДТ или клинт Иствуд, и все они выглядят дилетантски в отчете. В этой статье показано, как правильно стандартизировать текст на листе.
В этой статье предполагается, что у читателя отображается лента «Разработчик» и он знаком с редактором VBA. Если нет, погуглите «Excel Developer Tab» или «Excel Code Window».
Файл Excel можно найти здесь
В этом упражнении мы создадим функцию, способную в значительной степени распознавать намерения пользователя. Например, правильная функция Excel сократит «НАФТА» до «Нафта». в rarВ случае, когда кто-то вводит «вооруженные силы США», функция не сможет определить намерение, поскольку у нее нет словаря акронимов, и вполне корректно изменит его на «Вооруженные силы США». Таким образом, некоторые негодяи проскользнут через сеть.
Что делает функция
Текст разделен на две части, по одной с каждой стороны от первого пробела. Поэтому «Вооруженные силы США» становятся предварительной строкой, состоящей из «США» и apost-строка «Вооруженные силы».
- Если в p есть хотя бы один символ нижнего регистраost-string, то разумно предположить, что Caps Lock не был случайно оставлен включенным во время захвата. рostТаким образом, строка будет отформатирована в правильном регистре.
- Если второй символ предстроки в верхнем регистре, то мы можем разумно предположить, что вся предстрока должна быть написана с большой буквы.
Данные
Создайте новую рабочую книгу. Откройте окно кода VBA и вставьте модуль.
Вставьте следующие данные в первую ячейку листа A1.
Организация | Правильный случай |
Вооружённые силы США | |
вооруженные силы США | |
комитет ЮНЕСКО | |
БАРРИ ДЖОНС | |
Барри Джонс | |
1213456 | |
алан кортни | |
НАФТА | |
301 столичный дом |
Переименуйте этот лист в «Основной».
Код.
Скопируйте и вставьте следующее в окно кода 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
Добавьте кнопку на лист «Главная» и назначьте ее подпроцедуре «Главная».
Результаты
Нажмите кнопку, затем просмотрите результаты в столбце B листа.
Восстановление поврежденных книг
Время от времени Excel, как мost программное обеспечение, вылетит. Обычные процедуры восстановления, которые Excel использует для восстановления книги, чаще всего дают сбой. В такие моменты было бы полезно иметь инструмент для выполнения Восстановление Excel для файлов xlsx или xlsm.
Об авторе:
Феликс Хукер — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая rar ремонт и программные продукты для восстановления sql. Для получения дополнительной информации посетите www.datanumen.com
Оставьте комментарий