КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Определение типа данных ячейки
Использование относительных ссылок Поиск максимального значения на всех листах книги Листинг 2.72. Поиск максимального значения Function dhMaxInBook(cell As Range) As Double Dim sheet As Worksheet Dim dblMax As Double Dim dblResult As Double Dim fFirst As Boolean fFirst = True
' Расчет максимальных значений на всех листах рабочей книги _ и выбор наибольшего из них For Each sheet In cell.Parent.Parent.Worksheets ' Расчет максимального значения на листе dblResult = Application.WorksheetFunction.Max(sheet.UsedRange)
If fFirst Then ' Найдено первое значение - его не с чем сравнивать dblMax = dblResult fFirst = False End If ' Выбираем большее из dblMax и dbmResult If dblResult > dblMax Then dblMax = dblResult End If Next sheet ' Возврат результата dhMaxInBook = dblMax End Function Листинг 2.73. Функция dhSheetOffset Function dhSheetOffset(offset As Integer, cell As Range) As Variant ' Возврат корректного значения ячейки cell листа, смещение _ которого относительно текущего задано переменной offset dhSheetOffset = Sheets(Application.Caller.Parent.Index _ + offset).Range(cell.Address) End Function Листинг 2.74. Функция dhSheetOffset2 Function dhSheetOffset2(offset As Integer, cell As Range) As Variant ' Корректировка смещения (чтобы ссылка была на рабочий лист) Do While TypeName(Sheets(cell.Parent.Index + offset)) _ <> "Worksheet" If offset > 0 Then ' Пропускаем лист и проходим вперед по книге offset = offset + 1 Else ' Пропускаем лист и проходим назад по книге offset = offset - 1 End If Loop
' Возврат корректного значения ячейки cell листа, смещение _ которого относительно текущего задано переменной offset _ с пропуском листов с диаграммами dhSheetOffset2 = Sheets(cell.Parent.Index _ + offset).Range(cell.Address) End Function Листинг 2.75. Тип данных, хранящихся в ячейке Function dhCellType(rgRange As Range) As String ' Переходим к левой верхней ячейке, если rgRange - диапазон, _ а не одна ячейка Set rgRange = rgRange.Range("A1") ' Определение типа значения в ячейке Select Case True Case IsEmpty(rgRange) ' Ячейка пуста dhCellType = "Пусто" Case Application.IsText(rgRange) ' В ячейке текст dhCellType = "Текст" Case Application.IsLogical(rgRange) ' В ячейке логическое значение (True или False) dhCellType = "Булево выражение" Case Application.IsErr(rgRange) ' При вычислении значения в ячейке произошла ошибка dhCellType = "Ошибка" Case IsDate(rgRange) ' В ячейке дата dhCellType = "Дата" Case InStr(1, rgRange.Text, ":") <> 0 ' В ячейке время dhCellType = "Время" Case IsNumeric(rgRange) ' В ячейке числовое значение dhCellType = "Число" End Select End Function
Дата добавления: 2015-06-25; Просмотров: 393; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |