| Чат kullunТекущее время 5 ноября 2024, 14:26 |
АВТОР | СООБЩЕНИЕ |
---|
Сейчас нет на сайте Регистрация: 6.07.2012 |
| Возвращение n-го элемента из строки
Function ExtractElement(Txt, n, Separator) As String
' Возвращает n-й элемент текстовой строки, где
' элементы разделены указанным символом
Dim AllElements As Variant
AllElements = Split(Txt, Separator)
ExtractElement = AllElements(n - 1)
End Function
>tx t — текстовая строка, из которой извлекается подстрока (это может быть сим-
вольная строка или ссылка на ячейку);
> п — целое число, представляющее номер извлекаемого элемента;
> Separator — отдельный символ, используемый как разделитель.
В этой процедуре используется VBA-функция S plit, возвращающая массив констант,
из которого состоит текстовая строка. Массив начинается с нулевого элемента (а не с пер-
вого), поэтому текущий элемент имеет индекс п-1. | | Сейчас нет на сайте Регистрация: 6.07.2012 |
| =ISLLIKE("guitar","g*")
=ISLIKE("UnitIм,"Unit?")
=ISLIKE("a","[aeiou]")
=ISLIKE(ПРОПИСН(А1), ПРОПИСН("[aeiou]"))
=ISLIKE(A1,"1##") | | Сейчас нет на сайте Регистрация: 6.07.2012 |
| Соответствует ли строка шаблону
Функция ISLIKE довольно проста (и очень полезна). Она возвращает значение ИС-
ТИНА, если строка соответствует заданному шаблону.
Function IsLike(text As String, pattern As String) As Boolean
' Возвращает ИСТИНА, если первый оператор подобен второму
IsLike = text Like pattern
End Function
> tex t — текстовая строка или ссылка на ячейку, содержащую текстовую строку;
> p attern — строка, содержащая групповые символы согласно следующему списку.
Символ в шаблоне Соответствие в тексте
?
Любой отдельный символ
Нуль и более символов
#
Любая отдельная цифра (0-9)
[список символов]
Любой отдельный символ из перечня список_символов
[!список символов]
Любой отдельный символ, не принадлежащий перечню
список символов | | Сейчас нет на сайте Регистрация: 6.07.2012 |
| Идентификация последней непустой ячейки в столбце или в строке
В этом разделе будут рассмотрены две полезные функции: LASTINCOLUMN, которая
возвращает содержимое последней непустой ячейки в столбце, и LASTINROW, которая воз-
вращает содержимое последней непустой ячейки в строке. В качестве единственного аргу-
мента эти функции используют диапазон.
Function LASTINCOLUMN(rng As Range)
' Возвращает содержимое последней непустой ячейки столбца
Dim LastCell As Range
Application.Volatile
With rng.Parent
With .Cells(.Rows.Count, rng.Column)
If Not IsEmpty(.Value) Then
LASTINCOLUMN = .Value
Elself IsEmpty(.End(xlUp)) Then
LASTINCOLUMN = ""
Else
LASTINCOLUMN = .End(xlUp).Value
End If
End With
End With
End Function
-Оператор A pplication .V o la tile вызывает выполнение функции всякий раз,
когда пересчитываются формулы на рабочем листе.
-Оператор Rows. Count возвращает количество строк на рабочем листе.
Используется именно он, а не жестко заданное значение, из соображений совме-
стимости (это связано с тем, что более новые версии Excel могут включать большее
количество строк на рабочем листе).
-Ссылка rng.Column возвращает номер столбца левой верхней ячейки в аргументе rng.
-Благодаря ссылке rng. Parent функция работает корректно, даже если аргумент
rng ссылается на другой лист или рабочую книгу.
-Метод End (с аргументом xlUp) эквивалентен переходу к последней ячейке столбца
и нажатию <End> и <> .
-Функция Is Empty проверяет, пуста ли ячейка. Если ячейка пуста, функция воз-
вращает пустую строку. Без этого оператора пустой ячейке соответствовал бы ре-
зультат 0.
Function LASTINROW(rng As Range)
' Возвращает содержимое последней непустой ячейки в строке
Application.Volatile
With rng.Parent
With .Cells(rng.Row, .Columns.Count)
If Not IsEmpty(.Value) Then
LASTINROW = .Value
Elself IsEmpty(.End(xlToLeft)) Then
LASTINROW = ""
Else
LASTINROW = .End(xlToLeft).Value
End If
End With
End With
End Function | | Сейчас нет на сайте Регистрация: 6.07.2012 |
| Применяйте эту функцию VBA, чтобы не вводить следующую длинную формулу:
=СЧЕТЕСЛИ(А1:А100,">=10")-СЧЕТЕСЛИ(А1:А100,”>20") | | Сейчас нет на сайте Регистрация: 6.07.2012 |
| Подсчет количества ячеек между двумя значениями
Функция COUNTBETWEEN возвращает количество значений в диапазоне (первый аргу-
мент), которые попадают в область, заданную вторым и третьим аргументами.
Function COUNTBETWEEN(InRange, numl, num2) As Long
' Подсчитывает количество значений между numl и num2
With Application.WorksheetFunction
If numl <= num2 Then
COUNTBETWEEN = .CountIf(InRange, ">=" & numl) -
.Countlf(InRange, ">" & num2)
Else
COUNTBETWEEN = .CountIf(InRange, ">=" & num2) -
.Countlf(InRange, ">" & numl)
End If
End With
End Function
Обратите внимание на то, что эта функция вызывает функцию Excel СЧЕТЕСЛИ
(COUNTIF). По сути функция COUNTBETWEEN является “оболочкой”, которая может упро-
стить формулы.
СЧЕТЕСЛИ появилась в Excel 2007. [/i] | | Сейчас нет на сайте Регистрация: 6.07.2012 |
| функция VBA SheetName. Данная функция принимает один аргумент (диапазон)
и возвращает имя рабочего листа, который содержит указанный диапазон. При этом
используется свойство Parent объекта Range. Свойство Parent возвращает объект,
а именно — объект, содержащий объект Range.
Function SheetName(ref) As String
SheetName = ref.Parent.Name
End Function
Function WORKBOOKName(ref) As String
WORKBOOKNAME = ref.Parent.Parent.Name
End Function
Функция APPNAME, показанная ниже, еще больше расширяет иерархическую це-
почку, обращаясь к свойству Parent трижды. Такая функция возвращает имя объекта
A pplication для заданной ячейки. Указанная функция всегда будет возвращать значе-
ние M icrosoft Excel.
Function APPNAME(ref) As String
APPNAME = ref.Parent.Parent.Parent.Name
End Function | | Сейчас нет на сайте Регистрация: 6.07.2012 |
| Основы иерархии объектов
Объект Application
Объект Workbook
Объект Worksheet
Объект Range | | Сейчас нет на сайте Регистрация: 6.07.2012 |
| метод Application.Caller, возвращает объект Range. Этот объект
указывает на ячейку, из которой вызывается функция. Оператор Parent. Parent воз-
вращает рабочую книгу (родитель родителя объекта Range — объект Workbook).
Function LastSaved2()
Application.Volatile
LastSaved2 = Application.Caller.Parent.Parent. _
BuiltinDocumentProperties("Время последнего сохранения")
End Function | | Сейчас нет на сайте Регистрация: 6.07.2012 |
| Application.Volatile true - Перерасчет книги
Встроенные Свойта Документра - BuiltinDocumentProperties("Дата последнего вывода на печать") |
|
|