Составить программу вычисления функции vba

ДД! Подскажите пожалуйста. Вот задание: Написать программу вычисления функции y=f(x). Заполнить таблицу значений при x[a,b] с шагом h . a,b,h вводятся с клавиатуры (если эти величины в задании выражены через pi , то их следует предварительно рассчитать); вывод результатов осуществляется в два столбика ( x=. y=. ) с точностью до 6 знаков после запятой. Я сделала, но что то не пошло. У меня на форме UserForm1

Код к задаче: «Написать программу вычисления функции»

Листинг программы

Private Sub CommandButton1_Click() Dim a As Single, x As Single Dim b As Single Dim h As Single a = Val(TextBox1.Text) b = Val(TextBox2.Text) h = Val(TextBox3.Text) Label1.Caption = «» Label5.Caption = «» ‘MsgBox » a=» » » https://studassistent.ru/vba/napisat-programmu-vychisleniya-funkcii-vba-2″ target=»_blank»]studassistent.ru[/mask_link]

VBA Excel. Первая функция (для начинающих)

Функция (Function) отличается от подпрограммы (Sub) тем, что она всегда возвращает какое-либо значение. Если функция размещается в ячейке рабочего листа, то в этой ячейке мы видим значение, которое функция возвратила.

Excel VBA basics: Data types, DIM & SET (Learn to use them correctly)

В качестве примера мы создадим функцию, вычисляющую объем цилиндра по формуле: V=π*D²/4*H, где

  • V – объем цилиндра;
  • π – число Pi;
  • D – диаметр основания цилиндра;
  • H – высота цилиндра.

Первая функция на VBA Excel

Перейдите в редактор VBA, нажав сочетание клавиш «Левая_клавиша_Alt+F11».

Если вы не создавали ранее в этом проекте VBA стандартный программный модуль, нажмите кнопку «Module» во вкладке «Insert» главного меню. То же подменю откроется при нажатии на вторую кнопку после значка Excel на панели инструментов.

Ссылка на модуль появится в проводнике слева. Если модуль создан ранее, дважды кликните по его ссылке в проводнике, и он откроется справа для редактирования.

Читайте также:
Сколько знаков может быть в текстовом поле программы access

Нажмите кнопку «Procedure…» во вкладке «Insert» главного меню. Та же ссылка будет доступна при нажатии на вторую кнопку после значка Excel на панели инструментов.

В открывшемся окне добавления шаблона процедуры выберите «Function», вставьте в поле «Name» название функции «ObyemTsilindra» и нажмите «OK».

Шаблон функции добавится на лист модуля.

Вставьте в скобки через запятую аргументы функции (D, H), а внутрь шаблона следующую строку:

ObyemTsilindra = WorksheetFunction . Pi * D ^ 2 / 4 * H

В этой строке, функции (слева) присваивается значение, вычисленное в выражении справа. Выражение повторяет нашу первоначальную формулу вычисления объема цилиндра, где «WorksheetFunction.Pi» – это функция рабочего листа, возвращающая число Pi. Функция, вычисляющая объем цилиндра по диаметру основания и высоте готова.

Цикл For … Next — Новый курс VBA (8)

Вставка функции в ячейку

Вставить пользовательскую функцию в ячейку можно как вручную: =ObyemTsilindra(Ячейка1;Ячейка2) , так и с помощью мастера функций. Выберите ячейку, в которую вы хотите вставить формулу, и вызовите матер функций.

В открывшемся окне «Вставка функции» выберите категорию «Определенные пользователем», а в открывшемся списке – функцию «ObyemTsilindra» и нажмите «OK». В окне «Аргументы функции» в полях аргументов выберите соответствующие ячейки, кликнув по ним на рабочем листе, и нажмите «OK».
Обращаться с пользовательской функцией на рабочем листе можно так же, как с любой другой формулой, например, копировать протягиванием.

Источник: vremya-ne-zhdet.ru

Реализация математических функций. Задача 1

Математические функции VBA

Первый пример после введения может кому-то показаться страшным и непонятным, но не волнуйтесь, всё разберём по полочкам и даже неопытный кодер поймёт какие возможности нам открывает VBA. Итак, перед нами задача: Реализовать в VBA математические функции, вывести сумму этих функций в ячейки напротив заданных Х. Сами Функции таковы:

Читайте также:
Минимальная программа на си

Приступаем! Сначала определитесь, где вы будете писать. Есть вариант писать программу на самом Листе, но помните, !! если удалите случайно лист, на котором вы писали код то все ваши труды пойдут прахом!!. Вот эти листы и есть, те самые, которые у вас на Главной.
Снимок


Снимок1
Так что я вам советую создать модуль (Дополнительный блок), с которым могут быть связанны все Листы в ваше книге. Для этого в нашей среде нажимаем Insert —> Module. Дальше открываем его двойным щелчком (если не открылся автоматически).
Снимок2
Переходим к коду.

Public Sub prog1() Dim x() As Double Dim f1 As Double Dim f2 As Double Dim f3 As Double Dim f As Double Dim i As Integer Dim s As Integer

Здесь идёт объявление: самой функции(Sub), динамического массива х(), который нужно потом переопределить (всегда! при работе с динамическим массивом в VBA), f1, f2, f3 результат наших трёх функций, f — сумма результатов функций, i, s — необходимые переменные для промежуточных действий. В относительно далёкие времена использовалось объявление через %s, %d и т.д., но данное нами объявление считается грамотным и современным на дату публикации.=)

On Error GoTo errHandler Do ReDim x(s — 1) As Double x(i) = Cells(2 + i, 1) If x(i) >= 0 Or Tan(2 ^ x(i)) > 0 Then f1 = Log(x(i)) / Log(2) f2 = Tan(1 / (x(i) ^ 3)) f3 = Log(Abs(Tan(2 ^ x(i)))) / Log(2) f = f1 + f2 + f3 Cells(2 + i, 3) = f i = i + 1 Else: MsgBox («Error!») i = i + 1 End If Loop Until i = s — 1 Exit Sub errHandler: MsgBox Err.Description, vbCritical, «Error No: » Проверка условия -> либо снова действие либо идём дальше.

ReDim — та самая команда переопределения динамического массива, о которой я упоминал в начале.С помощью неё мы говорим, что массив Х будет иметь s — 1 элементов. Cells() — команда для обращения к ячейки, в её параметры мы записываем «координаты» ячейки. If x(i) >= 0 Or Tan(2 ^ x(i)) <> 0 Then — здесь мы проверяем подходит ли на введённые пользователем Х.

Читайте также:
Как установить программу observer на Андроид

Это условие следует из области допустимых значений для того или иного уравнения. Далее, думаю, понятно. Приравниваем наши f# соответствующим уравнениям и суммируем их в f. Записываем результат в ячейку командой cells() = . И увеличиваем счётчик по i.
Else выполняется в том случае, если Х не прошёл проверку. MsgBox выводит сообщение в диалоговом окне. Запомните, в этом языке каждый If имеет свой End If. Кроме тех случаев, когда условие задано в одну строку.

Предпоследняя страшная строка MsgBox Err.Description, vbCritical, «Error No: » Err.Number: то что в кавычках, просто символьная строка, https://codetown.ru/vba/matematicheskie-funkcii-01/» target=»_blank»]codetown.ru[/mask_link]

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru