Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2009, 11:00   #1
SanSanblch
Пользователь
 
Регистрация: 23.10.2008
Сообщений: 23
Сообщение Пользовательская функция с диапазоном в качестве параметра

Друзья помогите бедному студенту с VBA.
Надо в предложенном диапозоне найти самую динную строку из тех, длина которых меньше , либо равна 15.

Или
Аргумент функция - квадратный диапозон значений . Повернуть его на 90 градусов , и окрасить его крассный цвет.
Или подскажите где именно об этом можно почитать !!!

Подскажите как покрасить определённую ячейку в определённый цвет??

Последний раз редактировалось SanSanblch; 29.05.2009 в 13:24.
SanSanblch вне форума Ответить с цитированием
Старый 29.05.2009, 15:45   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Надо в предложенном диапозоне найти самую динную строку из тех, длина которых меньше , либо равна 15.
Код:
Function СамаяДлиннаяСтрока(ByRef ra As Range) As Integer
    Dim cell As Range: СамаяДлиннаяСтрока = 0
    For Each cell In ra.Cells
        ДлинаТекста = Len(cell)
        If ДлинаТекста <= 15 Then If ДлинаТекста > СамаяДлиннаяСтрока Then СамаяДлиннаяСтрока = ДлинаТекста
    Next cell
End Function

Sub ПримерИспользования()
    MsgBox СамаяДлиннаяСтрока([b2:b11])
End Sub
Цитата:
Аргумент функция - квадратный диапозон значений . Повернуть его на 90 градусов , и окрасить его крассный цвет.
Код:
Sub ПоворотДиапазонаЯчеек(ByRef ra As Range)
    ' Аргумент функция - квадратный диапозон значений .
    ' Повернуть его на 90 градусов , и окрасить его крассный цвет.
    If ra.Rows.Count <> ra.Columns.Count Then MsgBox "Диапазон не квадратный", vbCritical: Exit Sub
    Сторона = ra.Rows.Count
    arr = ra.Value: ReDim arr2(1 To Сторона, 1 To Сторона)
    For i = 1 To Сторона
        For j = 1 To Сторона
            arr2(j, Сторона - i + 1) = arr(i, j)
        Next
    Next
    ra.Value = arr2: ra.Interior.Color = vbRed
End Sub

Sub ПримерИспользования()
    For i = 1 To 5: For j = 1 To 5: Cells(i, j) = i & " " & j: Next: Next
    ПоворотДиапазонаЯчеек ([a1:e5]): MsgBox "Сейчас ещё раз повернём"
    ПоворотДиапазонаЯчеек ([a1:e5]): MsgBox "Сейчас ещё раз повернём"
    ПоворотДиапазонаЯчеек ([a1:e5]): MsgBox "Сейчас ещё раз повернём"
    ПоворотДиапазонаЯчеек ([a1:e5]): MsgBox "Сейчас ещё раз повернём"
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 29.05.2009, 17:37   #3
SanSanblch
Пользователь
 
Регистрация: 23.10.2008
Сообщений: 23
По умолчанию

Большое спасибо учитель!!!
SanSanblch вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с именным диапазоном tae1980 Microsoft Office Excel 32 21.08.2009 11:10
Функции. Передача массива в качестве параметра функции. Wia Помощь студентам 2 17.03.2009 14:57
работа с выделенным диапазоном nastya007 Microsoft Office Excel 5 13.03.2009 08:33
Передача метода класса в качестве параметра в другой метод Dmytry87 Общие вопросы C/C++ 0 12.11.2008 15:28
параметрический запрос с частью слова в качестве параметра yulia БД в Delphi 6 09.05.2008 20:27