Данная функция имеет три аргумента: в качестве первого указывается обрабатываемый диапазон, в качестве второго и третьего – соответственно минимальное и максимальное значения диапазона, которые задают область поиска. Количество ячеек, значения которых попадают в указанный интервал, отображается в активной ячейке.
Для использования функции можно применять формулу, пример которой выглядит следующим образом:
=dhCountSomeCells(A1:G15;10;15)
В данном случае будет определено количество ячеек, находящихся в диапазоне A1:G15 и значения которых располагаются в интервале от 10 до 15 (включительно).
Англоязычный текст – заглавными буквами
С помощью несложного трюка можно быстро преобразовать весь англоязычный текст выделенной ячейки в верхний регистр (написать его заглавными буквами). Решить эту задачу поможет пользовательская функция, код которой приведен в листинге 2.68.
Function dhFormatEnglish(strText As String) As String
Dim i As Integer
Dim strCurChar As String * 1
' Анализируется каждый символ строки strText. Каждый символ _
латинского алфавита преобразуется в верхний регистр
For i = 1 To Len(strText)
strCurChar = Mid(strText, i, 1)
' Код латинских строчных символов лежит в пределах _
от 97 до 122
If Asc(strCurChar) >= 97 And Asc(strCurChar) <= 122 Then
' Переводим символ в верхний регистр
dhFormatEnglish = dhFormatEnglish & UCase(strCurChar)
Else
' Просто добавляем символ в выходную строку
dhFormatEnglish = dhFormatEnglish & strCurChar
End If
Next i
End Function
После выбора функции следует указать ячейку, текст которой должен быть написан заглавными буквами. Результат отобразится в активной ячейке. Если преобразуемый текст является «смешанным», то есть содержит и русские, и английские слова, то преобразованы будут только английские слова, а русские останутся без изменений.
Отображение текста «задом наперед»
Трюк, который мы рассмотрим в данном подразделе, вряд ли будет иметь широкое практическое применение, поскольку он носит скорее развлекательный характер. Однако от этого он не становится менее интересным.
Смысл его заключается в том, чтобы быстро «перевернуть» текст выделенной ячейки (например, вместо Мама мыла раму получится умар алым амаМ). Чтобы получить подобный результат, можно применить пользовательскую функцию или специально созданный макрос. Соответствующий код приведен в листинге 2.69 (этот код следует поместить в стандартный модуль редактора VBA).
Function dhReverseText(strText As String) As String
Dim i As Integer
' Переписываем символы из входной строки в выходную _
в обратном порядке
For i = Len(strText) To 1 Step -1
dhReverseText = dhReverseText & Mid(strText, i, 1)
Next i
End Function
Sub ReverseText()
Dim strText As String
' Ввод строки посредством стандартного окна ввода
strText = InputBox(«Введите текст:»)
' Реверсия строки и вывод результата
MsgBox dhReverseText(strText), , strText
End Sub
После того как будет написан данный код, создается пользовательская функция dhReverseText (она будет помещена в категорию Определенные пользователем) и макрос ReverseText (он будет доступен в окне выбора макросов).
После выбора функции следует указать ячейку, текст которой необходимо преобразовать, – результат отобразится в активной ячейке. При выполнении данной операции не стоит забывать, что если ячейка содержит не текст либо пуста, то результатом работы функции будет сообщение об ошибке.
Можно запустить данную функцию, введя ее предварительно в строку формул. В общем случае формула выглядит следующим образом:
=dhReverseText(A4)
Здесь А4 – это адрес ячейки, текст которой требуется преобразовать. После нажатия Enter результат отобразится в активной ячейке.