Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/95: Рейтинг темы: голосов - 95, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 20.04.2011
Сообщений: 10
1

Создание пользовательской функции в Excel, VBA

20.04.2011, 13:00. Показов 18615. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Столкнулся с проблемой создания пользовательской функции в MS Excel, используя VBA. Если я правильно понял, это и есть создание макроса. В моем случае рассматривается линейная рента (файл в приложении), функцию для расчета которой необходимо создать.
Надеюсь на вашу помощь, ибо это практическая часть курсовой работы..
Заранее спасибо
Вложения
Тип файла: docx Линейная рента.Help.docx (14.8 Кб, 199 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.04.2011, 13:00
Ответы с готовыми решениями:

VBA создание пользовательской функции с необязательными параметрами в excel
Помогите пожалуйста;В VBA функция возвращает массив значений аргумента-диапазона. Если второй...

Создание пользовательской функции в Excel
Помогите решить данную задачу в Excel используя Visual Basic (ALT+F11) Вот типа того: Function...

Создание пользовательской функции с необязательными параметрами в excel
Написать пользовательскую функцию с необязательными параметрами. Функция подсчитывает количество...

Можно ли в коде VBA пользовательской функции EXCEL передать аргументы и запустить для промежуточного расчета процедуру?
Ребята! Подскажите. Можно ли в коде VBA пользовательской функции EXCEL передать аргументы и...

19
Заблокирован
20.04.2011, 13:05 2
kotopes_064,
спрашивайте, какие команды VBA нужны и, может быть, вам помогут. Потому что у вас математика чистой воды.
0
761 / 268 / 57
Регистрация: 13.12.2009
Сообщений: 1,103
20.04.2011, 13:10 3
Да, с помощью макроса можно создать программу которая будет вести расчет, по формуле.
Но она не будет пользовательской функцией VBA. Макрос нужно отнести к процедуре VBA.
0
0 / 0 / 0
Регистрация: 20.04.2011
Сообщений: 10
20.04.2011, 17:16  [ТС] 4
Может я просто не совсем правильно сформулировал задачу. Создание пользовательской функции - это же подразумевает создание макроса?
0
1856 / 1178 / 190
Регистрация: 27.03.2009
Сообщений: 4,564
20.04.2011, 17:32 5
типа того. функция-макрос
0
0 / 0 / 0
Регистрация: 20.04.2011
Сообщений: 10
20.04.2011, 19:11  [ТС] 6
Значит если так, то по той формуле из моего файла ( что в конце указаны красным цветом S(0), S(n) ) можно сделать "фунцию-макрос"?

Добавлено через 1 час 7 минут
Все, я понял теперь, необходимо создание своей функции в Екселе через макрос, т.е. открыть модуль, вызвать процедуру, но только вместо SUB выбрать Function (уточнил у рук-ля).
Входные данные у меня лежат в приложенном файле (две красные формулы в конце)
Буду оч признателен за помощь.

В теле функции, когда уже непосредственно пишешь операции с данными, как описывать возведение в степень? напрмиер (a+b)^n-1 так?
0
Заблокирован
20.04.2011, 19:55 7
kotopes_064,
вот так: (a+b)^(n-1). Иначе сначала будет возведено в степень n, а затем отнимется 1.
0
0 / 0 / 0
Регистрация: 20.04.2011
Сообщений: 10
20.04.2011, 20:40  [ТС] 8
Начал создавать свою функцию, наверное оч просто получилось, но я сталкиваюсь с такой задачей впервые:
Public Function СоврСтоимЛинРенты(f, r, n, b)

СоврСтоимЛинРенты = (f / r) * (((1 + r) ^ n) - 1) / ((1 + r) ^ (n - 1)) + (b / (r ^ 2)) * (((1 + r) ^ (n - 1)) - n) / ((1 + r) ^ (n - 1)) + (b / r) * (((1 + r) ^ (n - 1)) - 1) / ((1 + r) ^ (n - 1))

End Function

Ошибок никаких не выводит, но когда я включаю эту функцию, Excel мне окно с полями для выбора аргументов не выводит..
как быть?
0
Заблокирован
20.04.2011, 20:44 9
kotopes_064,
нужно как обычную функцию вставлять. Выбрать нужно: Определённые пользователем. Там и нужно функцию вызывать.
0
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 4
03.03.2013, 22:59 10
Скажите, а если не отражено в функциях строки определенные пользователем, что делать?
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
03.03.2013, 23:17 11
To Ольга111. Здравствуйте. А можете конкретизировать вот это:
не отражено в функциях строки определенные пользователем
Не отображается в перечне функций, или что-то в середине функции?
0
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 4
04.03.2013, 18:43 12
Да, она не отражается в списке функций. Я так понимаю, что просто не умею их писать( Не могли бы подсказать как вообще в экселе можно реализовать следующую задачу:
Есть срок кредита и есть первоначальный взнос. Для сроков 6-14 месяцев, первоначальный взнос должен быть в границах 10-90%, для сроков 15-18 месяцев, первоначальный взнос от 10 до 50%. Если менеджер вводит другие данные в окно пв, кроме разрешенных на конкретные сроки, ему должно вылетать сообщение некорректный ввод данных. С помощью проверки данных я это сделать не могу. Помогите, пож)
0
6944 / 2849 / 548
Регистрация: 19.10.2012
Сообщений: 8,721
04.03.2013, 18:49 13
Код UDF должен быть в стандартном модуле (не книги, не листа).
Ну а эту задачу думаю можно сделать проверкой ввода - покажите файл (сделайте небольшой пример).
Правда я в формулах пас
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
04.03.2013, 18:56 14
Не помогу - это к экономистам, я технарь. А функция, если она рабочая (протестированная) и не "Private Function ......()", должна отображаться в категории User Definet Function. Здесь, на форуме, их называют сокращенно UDF.
Кстати, если Вы создали функцию, средствами VBA можно определить категорию, в которой она будет отражаться (мат-е, фин-вые и т.д.)

Добавлено через 4 минуты
Опередил
Здесь, на форуме, их называют сокращенно UDF
Здравствуйте!
0
Hugo121
04.03.2013, 19:23
  #15

Не по теме:

Добрый вечер! (если Вы в Европе :) )

0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
04.03.2013, 19:37 16
А где ж мне быть? Вот только три дня я какой-то потерянный. В суботу сад образал, так самые толстые ветки (диаметр от 30 см.) упали соседу через забор. Вытянуть самому - сил не хватает. А сосед молчит. И сам не убирает. Может тоже потерянный? А древесина для определенных целей - СУПЕР! Абрикоса, вишня, яблоки.
0
6944 / 2849 / 548
Регистрация: 19.10.2012
Сообщений: 8,721
04.03.2013, 22:11 17
Тогда точно в Европе. Южной
У нас сегодня до -15-20, а вчера снегу навалило...
0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
04.03.2013, 22:59 18
Hugo, Вы просто забыли! Когда Вы начали помогать с словарями. Помните, "Локальний кошторис". Я, кажется, давал транскрипцию: "Локальный кошторыс" - т.е. "локальная смета". Это запад-запад-юг Украины. А вот сосед меня точно закопает. Боюсь, чтоб не обиделся. А что? Я ему могу еще с другого конца сада подкинуть. Шашлык на таких дровах - чудо!
0
Hugo121
04.03.2013, 23:19
  #19

Не по теме:

Да, забыл...
Мне тоже нужно одну старую сливу на шашлык :)
Метровыми кусками напилил - нужно помельче и поколоть.
Счас нас модеры за эти весенние настроения пожурят :)

0
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
04.03.2013, 23:26 20
Умирать - так весело! Вишня не старая, сорт такой - как черешня крупная, но кисловатая. Дерево крупное и быстро разрастается. Было бы Вам близко - пожалуйста. Если чесно - у меня не очень времени есть на шашлыки, поэтому забирайте хоть все.. А попилить - рекомендую цепную электро-пилу Makita. Удобная, надежная, мощная. Я брал в Венгрии, где-то 120 $.
0
04.03.2013, 23:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2013, 23:26
Помогаю со студенческими работами здесь

Создание пользовательской функций, в VBA, которая позволяет вычислить переменную
Плез, можете создать пользовательскую функцию которая вычисляет переменную T

Разработка пользовательской таблицы средствами процессора Excel, создание и выполнение макросов Excel
Помогите пож Используется ексель + Microsoft Visual Basic for Applications( alt F11)

Использование пользовательской функции в фильтре (VBA)
Есть форма с таблицей и полем для ввода, по значению которого после клика по кнопочке запускается...

Создание пользовательской ф-ии в VBA для первого Заглавного символа выражения
Здравия желаю уважаемые спецы сего форума! Решил создать пользовательскую функцию которая бы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru