Принудительный ввод в верхний регистр (Microsoft Excel)
Если вы разрабатываете лист для использования другими, вы можете захотеть, чтобы они всегда вводили информацию в верхнем регистре. Excel предоставляет функцию рабочего листа, которая позволяет преобразовывать информацию в верхний регистр, но она не применяется, поскольку люди фактически вводят информацию. Например, если кто-то вводит информацию в ячейку B6, то функцию рабочего листа нельзя использовать для преобразования информации из B6 в верхний регистр.
Вместо этого вы должны использовать макрос для внесения изменений за вас. При программировании на VBA вы можете заставить Excel запускать определенный макрос всякий раз, когда что-либо изменяется в ячейке листа. Следующий макрос можно использовать для преобразования всего ввода листа в верхний регистр:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.HasFormula Then Exit Sub Application.EnableEvents = False Target = UCase(Target.Cells(1)) Application.EnableEvents = True End Sub
Однако для того, чтобы макрос работал, он должен быть введен в определенном месте.
Выполните следующие действия, чтобы разместить макрос:
-
Откройте редактор VBA, нажав Alt + F11.
-
В окне «Проект» в левой части редактора дважды щелкните имя рабочего листа, который вы используете. (Вам может потребоваться сначала открыть папку VBAProject, а затем открыть в ней папку Microsoft Excel Objects.)
-
В окне кода для рабочего листа вставьте указанный выше макрос.
-
Закройте редактор VBA.
Теперь все (кроме формул), вводимое в любую ячейку рабочего листа, будет автоматически преобразовано в верхний регистр. Если вы хотите преобразовать не все, а только ячейки в определенной области рабочего листа, вы можете немного изменить макрос:
Private Sub Worksheet_Change(ByVal Target As Range) If Not (Application.Intersect(Target, Range("A1:B10")) _ Is Nothing) Then With Target If Not .HasFormula Then Application.EnableEvents = False .Value = UCase(.Value) Application.EnableEvents = True End If End With End If End Sub
В этом конкретном примере будет преобразован только текст, введенный в ячейки A1: B10; все остальное останется как введено. Если вам нужно преобразовать другой диапазон, укажите этот диапазон во второй строке макроса.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (9813) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для более старого интерфейса меню Excel здесь:
link: / excel-Forcing_Input_to_Uppercase [Принуждение ввода к верхнему регистру]
.