Создание новой функции

Программирование на Visual Basic for Applications
aaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 190
Зарегистрирован: 08.02.2002 (Пт) 13:48
Откуда: Russia

Создание новой функции

Сообщение aaf » 01.07.2003 (Вт) 13:42

Люди добрые, подскажите как в EXCEL сделать функцию - чтоб там выбор диапозона был и результат в нужную ячейку помещался?
Вечный LAmer

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 01.07.2003 (Вт) 14:13

надо написать функцию в модуле макросов, вот пример:
Код: Выделить всё
Function Max(r As Range)
k = 0
For Each n In r
If k = 0 Then
M = n
ElseIf n > M Then
M = n
End If
k = k + 1
Next n
Max = M
End Function


Меню: Вставка-Функции- Пользовательская Функция

В модуле листа прописать:

Код: Выделить всё
Private Sub Worksheet_Activate()
Application.Calculate
End Sub

aaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 190
Зарегистрирован: 08.02.2002 (Пт) 13:48
Откуда: Russia

Сообщение aaf » 02.07.2003 (Ср) 4:54

Сенкс! Именно то что надо!
А еще один вопрос - пробую в функции менять формат ячеек (шрифт, цвет т.п.) - и ни как... В процедуре получается, если как макрос ее делать, а в функции то же самое ни как и все, даже пытался процедуру из ф-ии вызвать - результат нулевой. Это особености EXCELL или я чето не догоняю?

код примерно такой:

Код: Выделить всё
Function aa(tt As Range)
i = 0
    For Each c In tt
         c.font.bold=true
    Next
End Function
Вечный LAmer

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 02.07.2003 (Ср) 8:08

Да, это особенности экселя. Функциям, вызываемым с листа, запрещено много чего делать, в частности, изменять форматирование.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 10

    TopList