Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Доярка

Новый участник


Сообщения: 33
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Что имею?
Во-первых, если у меня в Excel 2007 в модуле VBA сидит не процедура (Sub), а функция (Function), то через меню «Вид -> Макросы -> Макросы» уже доступа к ней нет. Хорошо, что помню комбинацию Alt+F11 для быстрого вызова редактора VBA, которая и здесь имеет силу!
Во-вторых, при попытке в том коде вычислить значение типа Interval.Rows при повторном вычислении ячейки с этой вставленной функцией выдаётся сообщение об ошибке «#ЗНАЧ!» - т.е. просто не знаю, как это значение грамотно узнать.

Возьмём такую вот задачу. Пусть в некотором интервале размещена матрица. Требуется создать функцию, которая вычислила бы сумму элементов, находящихся в строке с указанным номером (2-ой аргумент) этой матрицы (1-ый аргумент). Причём если номер строки задан ошибочно, то и выводилось бы сообщение о какой-нибудь ошибке.
Как делаю с помощью формул рабочего листа? Пусть в этом же примере номер строки явно указан в ячейке C11. В A12 пишу формулу
=ИНДЕКС($A$2:$D$4;$C$11;СТОЛБЕЦ())
и растягиваю по D12. В E12 формула
=СУММ(A12:D12)
Коряво, не правда ли?

Последний раз редактировалось okshef, 02-01-2012 в 12:50.


Отправлено: 10:46, 02-01-2012 | #9