Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Ссылки на внешние библиотекиСодержание книги
Поиск на нашем сайте
Выполним эксперимент. Пусть нам требуется многократно исполнять одну и ту же оптимизационную процедуру, например из-за того, что меняются некоторые параметры функционала. Для решения проблемы многократного повтора поиска решения следует записать макрос, что мы и сделаем. В результате мы получим макрос, содержащий ссылки на функцию Solver, например следующий: Sub Макрос3() SolverOk SetCell:="$D$8", MaxMinVal:=2, ValueOf:="0", ByChange:="$C$2:$C$7" SolverSolve End Sub Здесь функционал формируется в ячейке D8, а варьируемые параметры - в блоке C2:C7. Попытаемся повторить макрос: Сервис/Макрос/Макрос3/Выполнить.
Мы потерпели фиаско. На экране появляется панель (рис. 4.2), информирующая нас о том, что не определена процедура или функция SolverOk. Как же так? Мы только что пользовались этой процедурой, а она не определена? Все дело в том, что в Visual Basic не подключена ссылка на библиотеку, где находится набор процедур Solver. Для ее подключения необходимо установить соответствующий флажок ссылок (рис. 4.3). Теперь макрос можно повторять многократно.
Следует отметить, что если бы мы попытались активизировать библиотеку Solver до первого выполнения процедуры "Поиск решения", мы не смогли бы найти ее на панели ссылок. Отсюда тестовый прогон процедуры является неплохим подспорьем поиска библиотеки.
Примеры Скалярное произведение векторов (столбцы Excel) разной размерности
Поэлементное произведение массивов
Функции Application Предположим, что в некотором программном модуле требуется вычислить сумму произведений соответствующих элементов двух массивов (скалярное произведение векторов). Безусловно, это можно выполнить организацией цикла (см. выше). Однако мы прекрасно помним, что в Excel имеется специальная функция, выполняющая упомянутую операцию. С целью определить ее название, а затем воспользоваться ею, запишем макрос с функцией СУММПРОИЗВ(): Sub Макрос1() ActiveCell.FormulaR1C1 = "=SUMPRODUCT(R[-3]C[-1]:R[-1]C[-1],R[-3]C:R[-1]C)" End Sub Мы видим, как называется функция, сколько у нее параметров, помним, что мы делали, поэтому догадываемся о смысле параметров. Отсюда, используя вторую строку, мы можем с благодарностью воспользоваться интеллектом разработчиков Excel и записать функцию пользователя, выполняющую аналогичную работу: Public Function product(a, b) As Single product = Application.SumProduct(a, b) End Function Операторы принятия решения Специфика использования операторов принятия решений, условной и безусловной передачи управления в отличие от СИ заключается лишь в формате представления операторов. Оператор If Формат: if логическое_выражение then оператор - стандартный оператор Basic. В правой части может быть составной оператор (операторы разделяются двоеточием). Например, if x>a then x=a: y=b: z=x+y. В операции отношения дополнительно к стандартным операциям (=, <, >, <=, >=, <>) включены: Is - идентично (только для объектов), например в операторе If TypeOf MyControl Is CommandButton Then …; Like - позволяет применять подстановочные символы:? - любой символ, * любые символы, # - любая цифра, [CC] - список символов, [!CC] - исключая список символов. Логические функции проверки величин возвращают Истину согласно табл. 4.1. Таблица 4.1
Таблица 4.2
Блочная структура if
Многоблочная структура if
Логические операции: Not (отрицание), And (Лог. "И"), Or (Лог. "ИЛИ"), Xor (исключающее "ИЛИ"), Imp (импликация), Eqv (эквивалентность) и результаты их выполнения представлены в табл. 4.2, где T – Истина, F – Ложь. Select Case Структура Select Case - это особый вид управляющей структуры if. Она применяется, когда одна величина участвует во всех логических сравнениях, и определяет, какой блок когда будет выполняться. Наиболее часто Select Case используется в тех случаях, когда сравниваемая величина является целым числом - селектором или индексом. Формат оператора: Select Case величина Case сравнение1 блок операторов 1 Case сравнение 2 блок операторов 2 ... Case Else блок операторов, выполняемый, если не был выполнен ни один из всех записанных выше операторов. End Select В отличие от СИ после завершения блока Case управление передается не следующему оператору, а оператору End Select. Примеры допустимых операторов Case Case 23 (простое целое число); Case 1,3,5 (список чисел); Case “Мария” (текст); Case 1, 2, 7 To 9, 11 (диапазон); Case Is<0, 1, 3, 5 To 9, Is>15 (отношение). Безусловный переход Формат: Go To Метка. Оператор выполняет переход на оператор с меткой. Метка записывается в начале строки с двоеточием. Во избежание дополнительных ошибок в программе оператор Go To лучше не применять (неструктурированные переходы).
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-08-26; просмотров: 287; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.37.219 (0.007 с.) |