Remkomplekty.ru

IT Новости из мира ПК
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Vba excel корень

Пример простейших макросов

Простейшие макросы

Программирование в VBA ничем принципиально не отличается от большинства других языков программирования, если не использовать визуальные средства.

Язык программирования Бейсик, вернее, один из его диалектов или версий является частью VBA.

Когда вы программируете на VBA, то можете, также как и в Бейсик, вообще не описывать предварительно переменные, используемые в программе, чего Вы не можете сделать, например, в Паскале.

VBA – это разновидность VB для приложений. VBA встроен в Application Word, Excel, Power Point, Access.

Для каждого приложения есть свои нюансы VBA.

С помощью VBA приложения можно связывать между собой, вызывая в одной программе разные приложения и передавая данные между ними.

Такой процесс называется Автоматизацией. То приложение, откуда данные берутся, выступает в роли сервера, а то приложение, куда данные вставляются, играет роль клиента.

Лучше всего для сервера подходит Excel, а для клиента – Word.

Переменные, описанные с помощью оператора Dim, являются локальными, и действуют лишь внутри объявляемого модуля.

Переменные, объявленные как Public, действуют во всех программных модулях и доступны из любого модуля.

Значения Public не надо передавать другим модулям, так как они всегда доступны по их имени. Локальные переменные можно передавать другим модулям при их вызове.

Если вы работаете в Excel, то есть одна тонкость при обработке вещественных (с десятичной точкой) чисел.

Чаще всего на листе Excel числа набираются через запятую, а VBA такие числа воспринимает через точку. Поэтому десятичные числа лучше с листа считывать в символьные переменные, а затем программным способом менять запятую на точку. Тогда ошибок не будет наверняка.

Если Вы хотите, чтобы в VBA нельзя было использовать не объявленные переменные, как в Паскале, то надо перед программой поставить режим Explicit в виде команды Option Explicit.

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

Эту задачу средствами VBA в EXCEL можно решить минимум тремя или четырьмя способами.

Первый способ использует ввод и вывод данных на самом листе Excel.

Sub koren1()

Dim a As Integer

Dim b As Integer

Dim c As Integer

Dim d As Integer

Dim x1 As Integer

Dim x2 As Integer

‘ Тип данных можно сделать Long для больших целых чисел

‘ или Double для вещественных чисел

‘ или Variant для чисел любого типа

‘ Изменяя тип переменных, можно решать задачу в разных диапазонах данных

‘ читаем значения чисел в переменные

i = 2 ‘Задаем номер строки

a = Cells(i, 1)

b = Cells(i, 2)

c = Cells(i, 3)

d = b * b – 4 * a * c ‘Вычисляем дискриминант

‘Выводим его значение в строку 2, столбец 4

Cells(i, 4) = d

‘Применяем условие для решения квадратных уравнений

If d >= 0 Then

MsgBox “Решение есть”

x1 = (-b – Sqr(d)) / (2 * a)

x2 = (-b + Sqr(d)) / (2 * a)

Cells(i, 5) = x1

Cells(i, 6) = x2

Else

MsgBox “Решений нет”

End If

End Sub

Решим задачу вторым способом, задавая сами значения непосредственно в программе.

Dim a As Integer

Dim b As Integer

Dim c As Integer

Dim d As Integer

Dim x1 As Integer

Dim x2 As Integer

‘ Тип данных можно сделать Long для больших целых чисел

‘ или Double для вещественных чисел

‘ или Variant для чисел любого типа

‘ Изменяя тип переменных, можно решать задачу в разных диапазонах данных

‘ Заносим значения чисел в переменные

MsgBox “Коэф. A=” + CStr(a) + vbCr + “Коэф. B=” + CStr(b) + vbCr + “Коэф. C=” + CStr(c)

d = b * b – 4 * a * c ‘Вычисляем дискриминант

‘Выводим его значение в строку 2, столбец 4

MsgBox “Коэф. A=” + CStr(a) + vbCr + “Коэф. B=” + CStr(b) + vbCr + “Коэф. C=” + CStr(c) + vbCr + _

Дискриминант D=B*B-4*A*C= + CStr(d)

‘Обращаю внмание на вывод нестроковых значений в операторе Msgbox

‘ Значение надо преобразовать в строковый тип данных

‘Применяем условие для решения квадратных уравнений

MsgBox “Решение есть”

x1 = (-b – Sqr(d)) / (2 * a)

x2 = (-b + Sqr(d)) / (2 * a)

MsgBox “Корень x1=” + CStr(x1) + vbCr + “Корень x2=” + CStr(x2)

MsgBox “Решений нет”

Решим задачу 3-м способом, получая значения путем их ввода в интерактивном режиме непосредственно в программу.

Dim a As Integer

Dim b As Integer

Dim c As Integer

Dim d As Integer

Dim x1 As Integer

Dim x2 As Integer

Dim a1 As String

‘ Тип данных можно сделать Long для больших целых чисел

‘ или Double для вещественных чисел

‘ или Variant для чисел любого типа

‘ Изменяя тип переменных, можно решать задачу в разных диапазонах данных

‘ Вводим значения в переменные

a1 = InputBox(“Введите значение коэф.А”, “Ввод коэффициента”, 1)

a1 = InputBox(“Введите значение коэф.B”, “Ввод коэффициента”, 2)

a1 = InputBox(“Введите значение коэф.C”, “Ввод коэффициента”, -35)

If a = 0 Then MsgBox “Уравнение имеет одно решение”

‘MsgBox “Коэф. A=” + CStr(a) + vbCr + “Коэф. B=” + CStr(b) + vbCr + “Коэф. C=” + CStr(c)

d = b * b – 4 * a * c ‘Вычисляем дискриминант

‘Выводим его значение в строку 2, столбец 4

MsgBox “Коэф. A=” + CStr(a) + vbCr + “Коэф. B=” + CStr(b) + vbCr + “Коэф. C=” + CStr(c) + vbCr + _

Читать еще:  Excel 2020 промежуточные итоги

Дискриминант D=B*B-4*A*C= + CStr(d)

‘Обращаю внмание на вывод нестроковых значений в операторе Msgbox

‘ Значение надо преобразовать в строковый тип данных

‘Применяем условие для решения квадратных уравнений

MsgBox “Решение есть”

x1 = (-b – Sqr(d)) / (2 * a)

x2 = (-b + Sqr(d)) / (2 * a)

MsgBox “Корень x1=” + CStr(x1) + vbCr + “Корень x2=” + CStr(x2)

MsgBox “Решений нет”

Решим задачу 4-м способом, получая значения путем их ввода в форму пользователя непосредственно в программе.

Создаем форму пользователя Userform1

В форме располагаем несколько меток и текстовых окон, а также две командные кнопки.

По каждой кнопке вызывается исполняемый модуль

Текстовые окна имеют имена Koef_A, Koef_B, Koef_C, Disk_D, Koren_x1 и Koren_x2

Командные кнопки имеют имена cmdRun и cmdExit.

Private Sub cmdExit_Click()

Private Sub CmdRun_Click()

Dim a As Double

Dim b As Double

Dim c As Double

Dim d As Double

Dim x1 As Double

Dim x2 As Double

Dim a1 As Double

‘ Тип данных можно сделать Long для больших целых чисел

‘ или Double для вещественных чисел

‘ или Variant для чисел любого типа

‘ Изменяя тип переменных, можно решать задачу в разных диапазонах данных

‘ Вводим значения в переменные

If Trim(UserForm1.Koef_A) = “” Or Trim(UserForm1.Koef_B) = “” Or Trim(UserForm1.Koef_C) = “” Then

MsgBox “Введите значения коэффициентов”

If a = 0 Then MsgBox “Уравнение имеет одно решение”

d = b * b – 4 * a * c ‘Вычисляем дискриминант

‘Выводим его значение в строку 2, столбец 4

UserForm1.Disk_D = UserForm1.Koef_B + “*” + UserForm1.Koef_B + “-” + _

4* + UserForm1.Koef_A + ” *” + UserForm1.Koef_C + “=” + CStr(d)

‘Обращаю внмание на вывод нестроковых значений в операторе Msgbox

‘ Значение надо преобразовать в строковый тип данных

‘Применяем условие для решения квадратных уравнений

Vba excel корень

������� ���������� ��������� �� ����� VBA – �������, ����� �������� �� ���������� ������, � ����������� �� ��������� ����������. ���� ���������� �������� ���������, ������� ����� ����������� ������������ ���������� ��� ��������, ����������� �������������� ����������� ������������ ���������� Microsoft Office, �� ���������� ������� ����������� ������. ��� ���������� ���� ��������� ����� ��������� � ������� ������� ���������� ������, ������� ������� ����� �������� ���������� ���������. ��� ����� � ���������� ���������� �������� ������ ������������ � ������� ������� ��� ������ ������������ �������� ����������, � ����� ������� ������ � ��������������� ����������� �����. ���� ��������� ��������� � ������� ������� ������ ������ �������.

���������� “�����������” ��������� (��� ���������� ������� ��������� ��������� ����, � ���������� ���������� ����������) ����� �������� ��� �����. ������ ���� – ���� ����������� ����������������, �� ������� ��������� ���� (�����) ���������, ��� ������������� ����������� �������� ����������. ������ – ���� ����������������, �� ������� ��������� ����� ��������� (���������), ������������� � ����� �� ������������ �������. �������� ��������, ��������, ������ ����� ������� ���� �� ��������� ������ (������� Click), ������� ������� �� ���������� (������� KeyPress) � �.�. ������������ ����� ���������� ����� �������� ������ – «������ �������».

Range(“�����”)

Cells(i, j)

Rows(� ������)

Columns(� �������)

Sheets(“���”)

Sheets(� �����)

WorkSheet

Range(“A5:A10”). Value = 0 ��� Range(“A5:A10”) = 0 – � �������� ����� A5:A10 ��������� �������� 0.

Cells(2, 4). Value = n ��� Cells(2, 4) = n – � ������, ����������� �� ����������� 2-� ������ � 4-�� ������� (������ � ������� “D2”), ��������� �������� ���������� n.

Xn = Cells(1, 2).Value ��� Xn = Range(“B1”).Value – ���������� Xn ������������� �������� �� ������ B1 �������� �������� �����.

Sheets(2).Activate ������� �������� ���� � �2.

Sheets(“���������”).Delete ������� ���� � ������ “���������”.

Range(«A5:A10»).Clear – �������� �������� ����� A5:A10.

Range(«A2:B10»).Select – �������� �������� ����� A2:B10.

Application.Quit — ���������� ������ � Excel.

VBA Excel. Начинаем программировать с нуля

Первое знакомство с редактором VBA Excel, создание процедур (подпрограмм) и написание простейшего кода, работающего с переменными и ячейками рабочего листа.

Знакомство с редактором VBA

  1. Создайте новую книгу Excel и сохраните ее как книгу с поддержкой макросов с расширением .xlsm. В старых версиях Excel по 2003 год – как обычную книгу с расширением .xls.
  2. Нажмите сочетание клавиш «левая_клавиша_Alt+F11», которое откроет редактор VBA. С правой клавишей Alt такой фокус не пройдет. Также, в редактор VBA можно перейти по ссылке «Visual Basic» из панели инструментов «Разработчик» на ленте быстрого доступа. Если вкладки «Разработчик» на ленте нет, ее следует добавить в настройках параметров Excel.

В левой части редактора VBA расположен проводник проекта, в котором отображены все открытые книги Excel. Верхней строки, как на изображении, у вас скорее всего не будет, так как это – личная книга макросов. Справа расположен модуль, в который записываются процедуры (подпрограммы) с кодом VBA. На изображении открыт модуль листа, мы же далее создадим стандартный программный модуль.

  1. Нажмите кнопку «Module» во вкладке «Insert» главного меню. То же подменю откроется при нажатии на вторую кнопку после значка Excel на панели инструментов.
Читать еще:  Excel vba копирование файлов

После нажатия кнопки «Module» вы увидите ссылку на него, появившуюся в проводнике слева.

Первая программа на VBA Excel

Добавляем на стандартный модуль шаблон процедуры – строки ее начала и завершения, между которыми мы и будем писать свою первую программу (процедуру, подпрограмму).

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

В результате откроется окно добавления шаблона процедуры (Sub).

  1. Наберите в поле «Name» имя процедуры: «Primer1», или скопируйте его отсюда и вставьте в поле «Name». Нажмите кнопку «OK», чтобы добавить в модуль первую и последнюю строки процедуры.

Имя процедуры может быть написано как на латинице, так и на кириллице, может содержать цифры и знак подчеркивания. Оно обязательно должно начинаться с буквы и не содержать пробелы, вместо которых следует использовать знак подчеркивания.

  1. Вставьте внутрь шаблона процедуры следующую строку: MsgBox «Привет» .

Функция MsgBox выводит информационное сообщение с указанным текстом. В нашем примере – это «Привет».

  1. Проверьте, что курсор находится внутри процедуры, и запустите ее, нажав клавишу «F5». А также, запустить процедуру на выполнение можно, нажав на треугольник (на изображении под пунктом меню «Debug») или на кнопку «Run Sub/UserForm» во вкладке «Run» главного меню редактора VBA Excel.


Если вы увидели такое сообщение, как на изображении, то, поздравляю – вы написали свою первую программу!

Работа с переменными

Чтобы использовать в процедуре переменные, их необходимо объявить с помощью ключевого слова «Dim». Если при объявлении переменных не указать типы данных, они смогут принимать любые доступные в VBA Excel значения. Комментарии в тексте процедур начинаются со знака «’» (апостроф).

Пример 2
Присвоение переменным числовых значений:

Квадратный, кубический и другие корни в Excel с примерами

На клавиатуре нет кнопок с написанием квадратного или другого корня, поэтому в Excel создана специальная функция, вводит и вычисляет квадратный корень. Как ей воспользоваться, а также как извлечь корни разных степеней в Excel? Рассмотрим несколько примеров.

Важно! Функции в Excel вводятся в ячейках русскими буквами без пробелов, перед названием функции ставится знак равно =

За квадратный корень отвечает функция КОРЕНЬ(значение). Чтобы воспользоваться ей, нужно в ячейке написать =КОРЕНЬ и без пробелов внутри скобки написать значение, от которого нужно найти квадратный корень.

  • =КОРЕНЬ(225) — квадратный корень от числа 225;
  • =КОРЕНЬ(А1) — квадратный корень от значения ячейки А1;
  • =КОРЕНЬ(10+G6) — квадратный корень от суммы 10 и значения ячейки G6;

Как извлечь в Excel корень третьей, четвертой и иной степеней?

Для квадратного корня есть своя функция — КОРЕНЬ — а как быть с другими с другими корнями?

Из курса математики известно, что извлечение корня N —степени равно возведению числа в степень 1/ N .

  • извлечение квадратного корня (второй степени) соответствует возведению в степень 1/2;
  • кубического (третьей степени) — в 1/3;
  • четвертой степени — в 1/4 и т.д.

Этой формулой и нужно пользоваться для вычисления корней разных степеней в Excel. Для возведения степени использовать функцию СТЕПЕНЬ(аргумент) или галочку ^ (на английской раскладке SHIFT + 6). Саму дробную степень писать в скобках.

  • =27^(1/3) — извлечение кубического корня из числа 27;
  • =D3^(1/4) — извлечение корня четвертой степени из значения ячейки D3;
  • =(F2+15)^(1/5) — извлечение корня пятой степени из суммы значения ячейки F2 и числа 15.
  • =(A1^2+(D1+3)^5)^(1/3) — выражение для

.

Спасибо за Вашу оценку. Если хотите, чтобы Ваше имя
стало известно автору, войдите на сайт как пользователь
и нажмите Спасибо еще раз. Ваше имя появится на этой стрнице.

Есть мнение?
Оставьте комментарий

Понравился материал?
Хотите прочитать позже?
Сохраните на своей стене и
поделитесь с друзьями

Вы можете разместить на своём сайте анонс статьи со ссылкой на её полный текст

Ошибка в тексте? Мы очень сожалеем,
что допустили ее. Пожалуйста, выделите ее
и нажмите на клавиатуре CTRL + ENTER.

Кстати, такая возможность есть
на всех страницах нашего сайта

2007-2020 «Педагогическое сообщество Екатерины Пашковой — PEDSOVET.SU».
12+ Свидетельство о регистрации СМИ: Эл №ФС77-41726 от 20.08.2010 г. Выдано Федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций.
Адрес редакции: 603111, г. Нижний Новгород, ул. Раевского 15-45
Адрес учредителя: 603111, г. Нижний Новгород, ул. Раевского 15-45
Учредитель, главный редактор: Пашкова Екатерина Ивановна
Контакты: +7-920-0-777-397, info@pedsovet.su
Домен: https://pedsovet.su/
Копирование материалов сайта строго запрещено, регулярно отслеживается и преследуется по закону.

Отправляя материал на сайт, автор безвозмездно, без требования авторского вознаграждения, передает редакции права на использование материалов в коммерческих или некоммерческих целях, в частности, право на воспроизведение, публичный показ, перевод и переработку произведения, доведение до всеобщего сведения — в соотв. с ГК РФ. (ст. 1270 и др.). См. также Правила публикации конкретного типа материала. Мнение редакции может не совпадать с точкой зрения авторов.

Читать еще:  Впр таблица в excel как сделать

Для подтверждения подлинности выданных сайтом документов сделайте запрос в редакцию.

сервис вебинаров

О работе с сайтом

Мы используем cookie.

Публикуя материалы на сайте (комментарии, статьи, разработки и др.), пользователи берут на себя всю ответственность за содержание материалов и разрешение любых спорных вопросов с третьми лицами.

При этом редакция сайта готова оказывать всяческую поддержку как в публикации, так и других вопросах.

Если вы обнаружили, что на нашем сайте незаконно используются материалы, сообщите администратору — материалы будут удалены.

Основы VBA: встроенные и пользовательские функции

6.1. Встроенные математические функции

Вы хотите вычислить квадратный корень, округлить число или сделать с ним еще что-нибудь подобное? Для этого VBA имеет специализированные функции, вы можете найти их в табл. 6.1.

Давайте рассмотрим пример. Добавим в документ Microsoft Word кнопку, назовем ее cmd_Calc , надпишем ее как Вычисления и добавим следующий код (листинг 6.1.), иллюстрирующий работу рассмотренных функций.

Обратите внимание на алгоритм получения случайного числа, находящегося в определенном диапазоне, с помощью функции Rnd . Предположим, нам нужно получить случайное число от 15 до 40 . Получим, для начала, число от 0 до 40 . Очевидно, что для этого нам понадобится такой вызов: Rnd ()*40 .

Чтобы «поднять» уровень наименьшего случайного числа, возвращаемого выражением, до 15 , сделаем следующее.

Во-первых, вычислим разность 40 и 15 — у нас получится 25 . Значит, чтобы получить случайное число от 0 до 25 , можно использовать вызов Rnd ()*25 .

Во-вторых, прибавим к полученному случайному числу 15 . Теперь выражение для получения случайного числа от 15 до 40 выглядит так: Rnd ()*25+15 .

Проверим это высказывание на правильность. Функция Rnd , как известно, возвращает случайные числа от 0 до 1 . Если функция возвратит 0 — результат вычисления выражения будет равен 15 (0*25+15) . Если функция возвратит 1 — результат будет равен 40 (25*1+15) . Промежуточные значения Rnd дадут искомые случайные числа между 15 и 40 .

На рис. 6.1. вы можете видеть окно сообщения, содержащее результаты вызовов функции Rnd .

Выше мы работали, в основном, с числами, теперь поговорим о строковых переменных.

6.2. Строковые функции

В табл. 6.2. вы можете найти информацию об основных строковых функциях VBA .

Работа со строками традиционно считается сложным разделом программирования для начинающих, поэтому проиллюстрируем вышеописанные функции примерами.

Создадим документ Microsoft Word и добавим на него следующие кнопки табл. 6.3.

Обработчик нажатия кнопки cmd_Len (листинг 6.2.) будет содержать решение следующей задачи: сообщить пользователю длину введенного текста. Очевидно, для решения этой задачи нам понадобится функция Len .

На рис. 6.2. вы можете видеть результат вычисления длины строки.

Теперь займемся конверсией символов — функциями LCase и UCase (листинг 6. 3.).

На очереди — вырезание символов — функции Mid , LTrim , Rtrim , Left , Right (листинг 6.4.) Среди этих функций наиболее мощной является Mid — используя ее, можно делать со строками очень много всего.

Теперь рассмотрим примеры работы функций Asc , Chr и функции String . Чтобы работать с функциями Asc и Chr нам нужно познакомиться с понятием таблицы символов ASCII .

ASCII расшифровывается как American Standard Code For Information Intercharge — американский стандартный код для обмена информацией. Каждый символ в ASCII закодирован восьмибитным кодом. В результате получается таблица , в которой каждому управляющему символу, цифре, букве латинского или национального алфавитов сопоставлен свой код. Коды записывают в различных представлениях — в основном — в шестнадцатеричном и десятичном. Мы будем пользоваться десятичной записью.

Мы не будем приводить здесь таблицу ASCII полностью, приведем лишь некоторые полезные коды и диапазоны кодов.

Коды в диапазоне 0-31 имеют управляющие символы. Символ возврата каретки (тот самый, который вставляется в документ при нажатии клавиши Enter ) имеет код 13.

Коды в диапазоне 32-127 имеют латинские символы, цифры, знаки препинания — эта часть таблицы остается постоянной для различных кодовых таблиц. Например, пробел имеет код 32, точка — 46. Диапазон 48-57 занимают цифры от 0 до 9, диапазон 65-90 занимают заглавные латинские буквы от A до Z, диапазон 97-122 — строчными буквы a-z.

В диапазоне 128-225 расположены символы национальной кодировки. В русифицированных версиях MS Windows обычно применяется кодовая страница MS Windows 1251. В ней коды 192-223 имеют заглавные буквы от А до Я, 224-255 — строчные буквы от а до я.

Используя коды символов можно вводить в документы (или записывать в файлы, создаваемые программно) символы, которые нельзя ввести с клавиатуры.

В коде обработчика Click для cmd_Asc создадим программу (листинг 6.5.), которая сначала запрашивает у пользователя ввод символа, после чего выводит его ASCII код, потом — ввод кода, после чего выводит соответствующий ему символ. Так же здесь мы посмотрим на то, как работает функция String :

Ссылка на основную публикацию
Adblock
detector