Bazaprogram.ru

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

Переменные в excel

Переменные и константы в VBA

В VBA, как и в любом другом языке программирования, переменные и константы используются для хранения каких-либо значений. Как и следует из названия, переменные могут изменяться, константы же хранят фиксированные значения.

Например, константа Pi хранит значение 3,14159265… Число “Пи” не будет изменяться в ходе выполнения программы, но все же хранить такое значение удобнее как константу.

В то же время мы можем использовать переменную sVAT_Rate для хранения ставки НДС на покупаемые товары. Величина переменной sVAT_Rate может изменяться в зависимости от того, что за товар приобретается.

Типы данных

Все переменные и константы относятся к определённому типу данных. В таблице ниже приведены типы данных, используемые в VBA, с описанием и диапазоном возможных значений:

Тип данныхРазмерОписаниеДиапазон значений
Byte1 байтПоложительные целые числа; часто используется для двоичных данныхот 0 до 255
Boolean2 байтаМожет принимать значения либо True, либо FalseTrue или False
Integer2 байтаЦелые числа (нет дробной части)от -32 768 до +32 767
Long4 байтаБольшие целые числа (нет дробной части)от -2 147 483 648 до +2 147 483 647
Single4 байтаЧисло с плавающей точкой одинарной точностиот -3.4e38 до +3.4e38
Double8 байтЧисло с плавающей точкой двойной точностиот -1.8e308 до +1.8e308
Currency8 байтЧисло с плавающей точкой, с фиксированным количеством десятичных разрядовот -922 337 203 685 477.5808 до +922 337 203 685 477.5807
Date8 байтДата и время – данные типа Date представлены числом с плавающей точкой. Целая часть этого числа выражает дату, а дробная часть – времяот 1 Января 100 до 31 Декабря 9999
Object4 байтаСсылка на объектЛюбая ссылка на объект
StringизменяетсяНабор символов. Тип String может иметь фиксированную или изменяющуюся длину. Чаще используется с изменяющейся длинойФиксированной длины – приблизительно до 65 500 символов. Переменной длины – приблизительно до 2 миллиардов символов
VariantизменяетсяМожет содержать дату, число с плавающей точкой или строку символов. Этот тип используют в тех случаях, когда заранее не известно, какой именно тип данных будет введёнЧисло – Double, строка – String

Очевидно, что пользуясь приведённой выше таблицей и правильно выбирая тип данных, можно использовать память более экономно (например, выбрать тип данных Integer вместо Long или Single вместо Double). Однако, используя более компактные типы данных, нужно внимательно следить за тем, чтобы в коде не было попыток уместить в них не соразмерно большие значения.

Объявление переменных и констант

Примечание переводчика: Говоря о переменных в VBA, стоит упомянуть ещё один очень важный момент. Если мы объявляем переменную, но не присваиваем ей какое-либо значение, то она инициализируется значением по умолчанию:
• текстовые строки – инициализируются пустыми строками;
• числа – значением 0;
• переменные типа Boolean – False;
• даты – 30 декабря 1899.

Прежде чем использовать переменную или константу, её нужно объявить. Для этого в макрос добавляют вот такую простую строку кода:

Dim Имя_Переменной As Тип_Данных

В показанной выше строке кода Имя_Переменной – это имя переменной, которая будет использована в коде, а Тип_Данных – это один из типов данных из таблицы, приведённой чуть ранее в этой статье. Например:

Аналогично объявляются константы, но при объявлении констант обязательно сразу указывается их значение. Например, вот так:

Объявлять переменные в Excel не обязательно. По умолчанию все введённые, но не объявленные переменные в Excel будут иметь тип Variant и смогут принять как числовое, так и текстовое значение.

Таким образом, программист в любой момент сможет использовать новую переменную (даже если она не была объявлена), и Excel будет рассматривать её как переменную типа Variant. Однако, есть несколько причин, почему так поступать не следует:

  1. Использование памяти и скорость вычислений. Если не объявлять переменную с указанием типа данных, то по умолчанию для неё будет установлен тип Variant. Этот тип данных использует больше памяти, чем другие типы данных.Казалось бы, несколько лишних байт на каждую переменную – не так уж много, но на практике в создаваемых программах могут быть тысячи переменных (особенно при работе с массивами). Поэтому излишняя память, используемая переменными типа Variant, по сравнению с переменными типа Integer или Single, может сложится в значительную сумму.К тому же, операции с переменными типа Variant выполняются гораздо медленнее, чем с переменными других типов, соответственно лишняя тысяча переменных типа Variant может значительно замедлить вычисления.
  2. Профилактика опечаток в именах переменных. Если все переменные объявляются, то можно использовать оператор VBA – Option Explicit (о нём расскажем далее), чтобы выявить все не объявленные переменные.Таким образом исключается появление в программе ошибки в результате не верно записанного имени переменной. Например, используя в коде переменную с именем sVAT_Rate, можно допустить опечатку и, присваивая значение этой переменной, записать: “VATRate = 0,175”. Ожидается, что с этого момента, переменная sVAT_Rate должна содержать значение 0,175 – но, конечно же, этого не происходит. Если же включен режим обязательного объявления всех используемых переменных, то компилятор VBA сразу же укажет на ошибку, так как не найдёт переменную VATRate среди объявленных.
  3. Выделение значений, не соответствующих объявленному типу переменной. Если объявить переменную определённого типа и попытаться присвоить ей данные другого типа, то появится ошибка, не исправив которую, можно получить сбой в работе программы.На первый взгляд, это может показаться хорошей причиной, чтобы не объявлять переменные, но на самом деле, чем раньше выяснится, что одна из переменных получила не те данные, которые должна была получить – тем лучше! Иначе, если программа продолжит работу, результаты могут оказаться неверными и неожиданными, а найти причину ошибок будет гораздо сложнее.Возможно также, что макрос будет “успешно” выполнен. В результате ошибка останется незамеченной и работа продолжится с неверными данными!

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

Option Explicit

Оператор Option Explicit заставляет объявлять все переменные, которые будут использованы в коде VBA, и при компиляции выделяет все не объявленные переменные как ошибки (прежде чем будет запущено выполнение кода). Применить этот оператор не сложно – просто запишите в самом верху файла VBA такую строку:

Если хотите всегда вставлять Option Explicit в начало каждого нового созданного модуля VBA, то это можно делать автоматически. Для этого необходимо включить параметр Require Variable Declaration в настройках редактора VBA.

Это делается так:

  • В меню редактора Visual Basic нажмите Tools >Options
  • В появившемся диалоговом окне откройте вкладку Editor
  • Отметьте галочкой параметр Require Variable Declaration и нажмите ОК

При включенном параметре строка Option Explicit будет автоматически вставляться в начало каждого нового созданного модуля.

Область действия переменных и констант

Каждая объявленная переменная или константа имеет свою ограниченную область действия, то есть ограниченную часть программы, в которой эта переменная существует. Область действия зависит от того, где было сделано объявление переменной или константы. Возьмём, к примеру, переменную sVAT_Rate, которая используется в функции Total_Cost. В следующей таблице рассмотрены два варианта области действия переменной sVAT_Rate, объявленной в двух различных позициях в модуле:

Если переменная sVAT_Rate объявлена в самом начале модуля, то областью действия этой переменной будет весь модуль (т.е. переменная sVAT_Rate будет распознаваться всеми процедурами в этом модуле).

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

Однако, если будет вызвана какая-то функция, расположенная в другом модуле, то для неё переменная sVAT_Rate будет не известна.Если переменная sVAT_Rate объявлена в начале функции Total_Cost, то её область действия будет ограничена только этой функцией (т.е. в пределах функции Total_Cost, можно будет использовать переменную sVAT_Rate, а за её пределами – нет).

При попытке использовать sVAT_Rate в другой процедуре, компилятор VBA сообщит об ошибке, так как эта переменная не была объявлена за пределами функции Total_Cost (при условии, что использован оператор Option Explicit).

Читать еще:  Пивот таблицы excel

В показанном выше примере переменная объявлена на уровне модуля при помощи ключевого слова Dim. Однако, бывает необходимо, чтобы объявленными переменными можно было пользоваться в других модулях. В таких случаях для объявления переменной вместо ключевого слова Dim нужно использовать ключевое слово Public.

Кстати, для того, чтобы объявить переменную на уровне модуля, вместо ключевого слова Dim можно использовать ключевое слово Private, которое укажет на то, что данная переменная предназначена для использования только в текущем модуле.

Для объявления констант также можно использовать ключевые слова Public и Private, но не вместо ключевого слова Const, а вместе с ним.

В следующих примерах показано использование ключевых слов Public и Private в применении к переменным и к константам.

Excel переменные в формуле

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

Использование формул

Ячейка, помимо текстовых и числовых данных, может содержать формулу . В этом случае в ячейке будет отображаться результат вычисления. Говоря на языке Excel, ячейка будет возвращать результат вычисления. Формула состоит из констант, переменных, а также математических операторов. В качестве переменных в формуле используются адреса ячеек. В саму формулу, соответственно, будет подставляться значение, содержащееся в указанной ячейке.

Простейшие формулы

Рассмотрим простой пример, в котором будем использовать таблицу, представленную на рис. 5.27.

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

Обратите внимание, к ячейкам столбца Цена применен формат Денежный. Данный формат добавляет к указанному числу 2 десятичных знака и обозначение денежной единицы. Такой же формат применен и к ячейкам столбца Стоимость, но на текущий момент эти ячейки пусты. В ячейки столбца Стоимость нужно добавить формулы, вычисляющие стоимость каждого товара. Это очень простые формулы, в которых нужно умножить цену единицы товара на его количество. В качестве переменных будут использоваться ячейки из столбцов Цена и Количество. Итак, начнем.

  1. Создайте таблицу, аналогичную приведенной на рис. 5.37.
  2. Выделите ячейку D2, в которой должна рассчитываться стоимость первого товара.
  3. Введите знак = (равно). Ввод любой формулы начинается с этого знака.
  4. Щелкните мышью по ячейке B2. Она будет выделена пунктирной рамкой, и адрес указанной ячейки окажется вставлен в формулу.
  5. Введите знак * (звездочку). Это оператор умножения.
  6. Щелкните мышью по ячейке C2. Адрес этой ячейки будет вставлен в формулу. Формула в ячейке D2 должна иметь вид =B2*C2.
  7. Нажмите клавишу Enter, чтобы завершить ввод формулы (рис. 5.38).

Как только вы завершили ввод формулы, в ячейке D2 мгновенно появился результат вычисления. Значение, указанное в ячейке B2, было умножено на значение, указанное в ячейке C2, и результат умножения был возвращен ячейкой D2 (ячейкой, в которой находится формула). Выделите ячейку D2. Обратите внимание, в выделенной ячейке отображается результат вычисления. Но если вы посмотрите на строку формул, то увидите в ней формулу, содержащуюся в ячейке. Таким образом, в этой строке вы можете редактировать формулу. Также обратите внимание, что мы не вводили адреса ячеек в формулу вручную. Вместо этого мы просто выделяли ячейки, адреса которых нужно подставить в формулу. Тем не менее ручной ввод адресов тоже допускается.

Итак, мы создали формулу, высчитывающую стоимость первого товара. Аналогичную формулу нужно добавить и в остальные ячейки столбца D. Но делать это вышеописанным методом нецелесообразно. В нашем примере используется таблица с несколькими строками, но на практике таких строк может быть несколько сотен. Поэтому нам нужно скопировать уже созданную формулу в остальные ячейки столбца D. Делается это просто.

  1. Выделите ячейку D2, то есть ячейку, в которой содержится формула.
  2. Нажмите кнопку Копировать в группе Буфер обмена на вкладке Главная (или нажмите сочетание клавиш Ctrl+C). По периметру ячейки появится пунктирная рамка и содержимое ячейки (именно формула, а не возвращенный ей результат), будет помещено в буфер обмена.
  3. Выделите ячейки D3:D9, то есть ячейки, в которые нужно добавить формулу.
  4. Нажмите кнопку Вставить в группе Буфер обмена на вкладке Главная (или сочетание клавиш Ctrl+V). Формула будет вставлена во все выделенные ячейки, и в них мгновенно отобразится результат вычисления (рис. 5.39).

Виды ссылок

Теперь рассмотрим одну особенность, которая позволяет тиражировать формулу сразу в несколько ячеек. Выделите ячейку D3 и посмотрите на строку формул. Вы увидите, что в ячейке содержится формула =B3*C3. Выделите ячейку D7 и убедитесь, что в ней содержится формула =B7*C7. Как так получилось, если мы копировали в буфер формулу =B2*C2?

Дело в том, что Excel распознает смещение формулы в другую ячейку и автоматически применяет это смещение ко всем переменным в формуле. Таким образом, программа считает, что, если вы копируете формулу из второй строки (и в формуле участвуют переменные из второй строки) в третью строку, значит, и к переменным в формуле нужно применить аналогичное смещение. То есть адреса ячеек меняются, например, C2 на C3, C4, C5 и т. д. Это свойство позволяет копировать ранее созданную формулу в сотни ячеек одновременно, не заботясь о корректировке переменных. Ссылки, которые автоматически корректируются при копировании формулы в другие ячейки, называются относительными.

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

Предположим, что стоимость товара нужно еще разделить на курс валюты, который указан в единственной отдельно расположенной ячейке E2. Если мы создадим формулу вида =(B2*C2)/E2, то при копировании формулы в третью строку она будет преобразована в =(B3*C3)/E3, что приведет к неверному результату вычисления, поскольку курс валюты указан только в ячейке E2 и нигде больше. Поэтому в формуле =(B2*C2)/E2 нужно заменить относительный адрес ячейки E2 на абсолютный. В абсолютном адресе перед заголовком столбца и номером строки вводится знак $. То есть, чтобы добавить в формулу абсолютный адрес ячейки E2, нужно ввести $E$2, чтобы формула приняла вид =(B2*C2)/$E$2. Теперь при копировании формулы в третью строку, формула будет преобразована в =(B3*C3)/$E$2. Как видите, относительные ссылки в формуле изменились в соответствии со смещением позиции формулы на листе, но ссылка на ячейку с курсом валюты осталась неизменной.

Существуют также смешанные ссылки . Это ссылки, в которых одна из координат является абсолютной, а другая — относительной. Пример: $E2 и E$2. В первом случае столбец в ссылке остается неизменным при любых обстоятельствах, в то время как номер строки может меняться при смещении формулы. Во втором случае, наоборот, строка ссылки закреплена, в то время как столбец в адресе ячейки может меняться. Знак $ для добавления в формулу абсолютной ссылки можно не вводить вручную. При добавлении в формулу ссылки методом выделения соответствующей ячейки, нажмите после выделения ячейки клавишу F4. Каждое нажатие клавиши будет последовательно менять ссылку на абсолютную, смешанную и относительную.

Математические операции

Любая математическая формула в ячейке создается достаточно просто. Вы вводите формулу точно так же, как писали бы ее на бумаге, только вместо переменных подставляете адреса ячеек, в которых они находятся. Предположим, нам нужно создать формулу вида D=1,25*A/(В+С)*2.

Разберем эту формулу. D — это результат вычисления формулы. Этот результат будет выводиться в ячейке, в которой расположена формула. То есть в электронной версии формулы нам данная буква не нужна. 1,25 и 2 — постоянные числа в формуле, то есть константы. Соответственно, они остаются неизменными. А, В и С — переменные. Эти числа могут меняться, что повлияет на результат вычисления. В электронном виде в качестве переменных используются ячейки. Предположим, что переменная А находится в ячейке C2, B — в ячейке D2, а C — в ячейке E2. Таким образом, формула в ячейке Excel будет иметь вид =1,25*C2/(D2+E2)*2.

Читать еще:  Как сделать всплывающую подсказку в excel

Согласитесь, все просто. Важно только не запутаться в переменных. Обратите также внимание, что в формулах используются те же правила, что и при выполнении математических операций: операции умножения и деления выполняются в первую очередь, но операции, заключенные в скобки, имеют приоритет. Ниже приведена таблица с математическими операторами, используемыми в Excel. Другие операции, например извлечение квадратного корня или деление с остатком выполняются с помощью функций, которые мы рассмотрим чуть позже.

Математические операторы Excel

Для закрепления материала немного дополним начатый пример. Предположим, что все указанные канцтовары мы закупаем в определенном магазине, где у нас действует скидка. Размер скидки зависит от вида товара, и он нам известен. Нам нужно рассчитать стоимость товаров с учетом скидки. Для этого мы дополним таблицу еще двумя колонками (рис. 5.40).

В колонке Скидка указаны размеры скидки для каждого вида товаров (в процентах). В колонке Стоимость с учетом скидки нужно создать формулу, которая будет высчитывать итоговую стоимость вида товара с вычетом скидки. Формула должна иметь вид =Ст-(Ст/100)*Ск, где Ст — стоимость товара, а Ск — скидка, выраженная в процентах.

  1. Выделите ячейку F2, то есть первую ячейку в колонке Стоимость с учетом скидки.
  2. Введите знак = (равно).
  3. Щелкните мышью по ячейке D2, чтобы подставить в формулу адрес ячейки с возвращенной стоимостью товара.
  4. Введите знак «минус».
  5. Введите круглую открывающую скобку.
  6. Снова щелкните мышью по ячейке D2, чтобы подставить ее в формулу.
  7. Введите знак деления /.
  8. Введите 100.
  9. Введите круглую закрывающую скобку.
  10. Введите знак умножения *.
  11. Щелкните мышью по ячейке F2 (первой ячейке в колонке Скидка). Адрес ячейки будет вставлен в формулу. У вас должна получиться формула =D2-(D2/100)*E2 (рис. 5.41).
  12. Нажмите клавишу Enter, чтобы завершить ввод формулы (рис. 5.42).

В ячейке F2 отображается стоимость товара за вычетом скидки, указанной в ячейке E2. Обратите внимание, в формуле участвует переменная, которая сама по себе является возвращенным результатом. Мы знаем, что в ячейке D2 находится формула, возвращающая стоимость товара, и этот возвращенный результат используется в качестве переменной в формуле в ячейке F2. Нам остается размножить формулу на остальные ячейки столбца Стоимость с учетом скидки.

Переменные

Этот урок я записывал в Тунисе, так что его можно назвать «африканским» уроком. Несколько фотографий, сделанных мной на отдыхе, можно посмотреть на моем сайте.

Поздравляю с ДР! Успехов!

Все понимаю, но не все запоминаю. Даже если делаю свой пример. В течении какого времени можно будет смотреть еще?

Ну, обычно достаточно пару-тройку раз сделать — запоминается.

Ограничения по времени нет — смотрите когда хотите.

Дмитрий, у меня к Вам просьба, не удаляйте видеоуроки, по мере изучения приходиться возвращаться к просмотру их и снова закреплять. Я хочу заняться тренировкой немного позже (сейчас нет времени), а они у вас очень доступны, просты и я вам благодарна за них.

Добрый день, Kulken.

Да вроде бы пока нет в планах их удалять Заходите, пересматривайте, внедряйте.

PS: только времени и потом не будет, «долгие зимние вечера» — это миф надо либо начинать уже сегодня обучаться хотя бы по чуть-чуть, либо не заметите, как пролетит и год, и два

Дмитрий спасибо Вам за ваши уроки.Очень полезные и нужные.Подскажите пожалуйста где раздобыть Microsoft Visual Basic 6.0.

Spasibo, Dmitrij Gennadjevič. Budu trenirovatsa, čtobi osvoits dannij material.

Добрый день!Спасибо за уроки,очень полезная информация,грамотно преподнесенная!

огромное спасибо, все понятно и легко. Автор Молодец!

Notice: Undefined variable: client_data in /var/www/snaper/data/www/excel-eto-prosto.ru/bin/c_functions.php on line 1008

Notice: Undefined variable: client_data in /var/www/snaper/data/www/excel-eto-prosto.ru/bin/c_functions.php on line 1016

Notice: Undefined variable: client_data in /var/www/snaper/data/www/excel-eto-prosto.ru/bin/c_functions.php on line 1020

очень спасибо, но сложно. автор молодец

Всё супер. Понятно и интересно!

Доброй ночи, Дмитрий! Проконсультируйте, пожалуйста, по 3-м вопросам (действия выполнялись в окне Immediate):

1) написана команда:

возникает ошибка типа:

Type-declaration character does not match declared data type

что это означает?

2) при ином вводе получается следующее:

? Фамилия + Имя + Отчество

После фамилии не ставится пробел. Как этого избежать?

3) если изменить ФИО лица, не стирая при этом строку «? Фамилия + Имя + Отчество», получается следующее:

? Фамилия + Имя + Отчество

Доброе утро, Татьяна.

1) Перед и после знака «&» необходимо ставить пробелы (в случае с «плюсами» Вы их ставить не забываете — поэтому там все работает):

? Фамилия & Имя & Отчество

2) Должен ставиться — он ведь есть в переменной Имя. У меня, по крайней мере, выводится нормально.

Как вариант, можно пробел не помещать внутрь переменной, а добавлять в момент «склеивания»:

? Фамилия & » » & Имя & » » & Отчество

3) В окне Immediate команда выполняется в момент нажатия Enter. Если содержимое переменных изменилось, и Вы хотите это новое содержимое увидеть — надо еще раз нажать Enter на строке с командой вывода склеенной строки.

Переменная — это область в памяти компьютера, в которую можно что-то «положить», как в ящик шкафа. Но пока Вы в этот ящик не заглянете, Вы не узнаете что там хранится — сам ящик об этом Вам кричать не будет

Дмитрий, доброй ночи! Благодарю Вас за ясный и подробный ответ! Действительно, всё получилось, как Вы и описали:

1) проставила необходимые пробелы — всё заработало;

2) поняла почему ошибка. Пробел не ставился, т.к. я некорректно выполняла п.3 (не нажимала Enter после корректировки каждой строки и программа не видела моих изменений по добавлению пробелов);

3) собственно п.3 — изначально нажимала Enter лишь после строки

Читать еще:  Создание формы в excel на vba

? Фамилия + Имя + Отчество

учла свою ошибку, теперь всё работает отлично.

Еще раз огромное Вам спасибо.

Дмитрий, Огромное СПАСИБО. Доступно, лаконично, интересно. У вас дар доносить информацию до пользователя. Помимо знаний получаю еще массу удовольствия и восторга, когда применяю их на практике и все получается. Восхищаюсь такими людьми как Вы.

Спасибо за урок! Очень полезный!

Все очень понятно и доступно. Спасибо))) Жду новых уроков)

СУПЕР. Очень познавательно. Еще раз спасибо!

Спасибо за урок!

Дмитрий, огромное человеческое спасибо! Это просто гениально.

Дмитрий, спасибо за просвещение.

Большое спасибо! Все Ваши уроки легко усваиваются, так как Вы прекрасно и доходчиво объясняете. Единственный вопрос: для чего нужен immediate? данные из него можно вставлять в листы Ексель?

Добрый день, Айзада. Спасибо )

Окно «Immediate» (в переводе — «немедленный», «неотложный») предназначено для выполнения какой-либо команды «здесь и сейчас». Окном можно воспользоваться как в процессе отладки программы (пока она поставлена на паузу) — например, узнать значение переменной или изменить его; так и не находясь в процессе отладки — например, если хотите узнать числовой код цвета заливки текущей ячейки, можно в окно Immediate ввести команду » ? ActiveCell.Interior.Color » и нажать Enter — через мгновение в строке ниже будет выведен нужный вам код цвета.

В окне Immediate можно выполнить практически любую команду, в том числе, конечно же, и команду для изменения значения в какой-либо ячейке.

Добрый день (или вечер)! Дмитрий, очень приятно что в России имеются такие самородки как ВЫ. Сложнейший материал, как макрос,составление программы и прочее Вы объясняете в такой доступной форме. Несколько раз приступала к изучению макросов, но до настоящего времени применить их на работе не смогла. Прослушав Ваш мастер-класс 13.12.2018г. начала изучение Ваших бесплатных уроков. И уже нашла применение их в своих отчетных формах, конечно это капля в море, но радует! На мастер-классе Вы сказали что ранее работали в Татарстане в ТОДК (можно узнать какого района),вдвойне приятно. Работала В Мензелинском ТОДК до 2014г. Спасибо, за все что Вы делаете, дай Бог Вам здоровья и творческих успехов.

Добрый!извиняюсь за вопрос про переменные в строке Sum про груши и яблоки,у меня после f5 ошибку выдает,не пойму где там и что должно складываться и нужно ли еще вписывать что ниб.про sum после?

Переменные в excel

Спасибо Дмитрию, я не знал, как подойти к макросам, но понимал, что без них никак, после второго занятия я решил свою долгую проблему построения баланса в нужном виде, к которой не знал, как подступиться ооочень долго. Ура. Я, находясь в Флориде, научился этому, в режиме он-лайна я смотрел всего лишь 2 вебинара, так как слишком разные часовые пояса, но по ночам я сидел и разбирал все скаченные записи, все равно все понятно. Еще раз спасибо Дмитрию

Дмитрий, добрый день! Мне 56, есть внуки. Иногда они задают такие вопросы ,что начинаешь думать: «Господи, мне-то ясно, а вот как ему объяснить, да так, чтобы было понятно?». Приходится запасаться терпением и подыскивать примеры из жизни. Не знаю, насколько уместна такая аналогия, но суть кажется ухвачена верно : терпение, простота и доходчивость объяснений, подтверждение наглядными примерами. Кирпичик к кирпичику, от простого к сложному и снова терпение, терпение и терпение. Вести мастер-класс в течении нескольких часов-это . Одна подготовка к нему представляется адским трудом и огромное спасибо Вам за это.

Знакомство с Excel, затем VBA начал практически с нуля и то, что я теперь немного отличаюсь от обычного пользователя программы – исключительно Ваша заслуга. Полученные знания позволили хотя бы частично, но облегчить труд моему другу .Совместными усилиями мы сократили время обработки части информации с 16-ти до 2-х часов и от него Вам тоже слова благодарности. Хочу пожелать Вам обязательно продолжать начатое, Вы нужны нам!

Дмитрий, спасибо большое!

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

Я знаю что я еще многого не знаю, так что скорее всего я снова буду вашим учеником.

Выражаю Вам признательность и огромную благодарность за проведённый тренинг. Всё, как и на бесплатных уроках, объяснено доходчиво и понятно.

Конечно, не всё с ходу было понятно и не всё запомнилось, но материал, изложенный в видеозаписи и в примерах, позволяет его многократно повторять и использовать. Уже есть планы для внедрения в жизнь полученных знаний.

С программированием как таковым я впервые столкнулся на 1-м курсе МВТУ им. Баумана в далеком 1978г (1 семестр, FORTRAN-4). Я старался понять и освоить новую науку, но писать даже элементарные программки так и не научился. К сожалению, я был не одинок. Из 150 студентов нашего потока, может быть, 5-6 человек могли использовать полученные знания в курсовых и дипломных работах. Для меня и остальных студентов так и осталось большим секретом, с какого бока надо подходить к ЭВМ (в то время СМ-4 и БЭСМ-6). Запомнилось ещё определённое высокомерие со стороны тех, кто умел программировать (преподаватели, студенты), по отношению к тем, кто в программировании ничего не понял. Даже приводили статистику, что только 10% людей способны быть программистами.

Вторую попытку освоить программирование, будучи инженером-разработчиком, я предпринял в 1987г, пойдя на 2-х месячные платные курсы. Неприятно удивило, что учили нас так же, как в студенческие времена. Результат тот же.

Время шло. Компьютеры стали доступны каждому. Мне понравился Excell. Самостоятельно его освоил (в том числе Windows Mobile 5.0). Стал его активно применять в торговле и в сфере управления персоналом. Когда научился писать логические мегаформулы (до 1024 знаков), понял, что их возможности ограничены и нужно снова учиться программированию, теперь уже на языке VBA. Понимая, что без преподавателя мне не обойтись, попытался найти какие-нибудь обучающие видео уроки в Интернете. Попал на Ваш, Дмитрий, сайт и после просмотра бесплатных уроков и вебинаров со мной произошло чудо. Всё, что Вы говорите на уроках мне понятно и самое смешное, я оказывается, многое помню из FORTRAN-4. Через некоторое время написал первые в своей жизни программы сначала с помощью макрорекордера, а затем используя переменные, условия и циклы. Эффект от написанных программ и появившийся практический опыт вдохновил на более глубокое изучение VBA на Вашем платном 3-х недельном тренинге.

Тренинг мне понравился. Старался выполнять домашние задания. К сожалению, на последнее задание времени не хватило (Семья, на работе конец-начало квартала, дача и т.п. — это никто не отменял.). Сказывалось отсутствие навыков и опыта.

Замечаний к обучению у меня нет. Могу только пожелать, чтобы в бесплатные уроки добавили информацию о циклах, а в 3-х недельном тренинге рассказали подробнее про массивы.

Что в итоге можно сейчас сказать?

В Вашем лице, Дмитрий, нам просто повезло с преподавателем.

Все познаётся в сравнении, и теперь я думаю, что в былые времена нам просто не смогли доходчиво объяснить учебный материал по азам программирования и, образно говоря, учили плаванию в бассейне без воды.

А Вам Дмитрий, ещё раз огромное СПАСИБО за то, что помогли разбить в прах привитое мне неверие в собственные силы в области программирования.

Дмитрий, хочу еще раз сказать ОГРОМНОЕ спасибо за предоставленные примеры на вебинаре «Пользовательские формы и элементы управления». В моей работе в большинстве случаев приходится сталкиваться с построением отчетов сотрудниками и, чтобы избежать ошибок при вводе данных, я как раз и хотела воспользоваться пользовательскими формами, но знаний для этого было недостаточно. Всю эту информацию конечно можно найти в учебниках, и я не раз их читала, но нет ничего лучше, чем наглядные примеры. По ходу вебинара у меня рождались идеи воплощения того или другого продемонстрированного примера в моей работе. Теперь осталось воплотить это всё в жизнь!

Желаю всем коллегам, присутствовавшим на вебинаре, найти применение полученной информации и не останавливаться на достигнутом!

А от Дмитрия жду новых вебинаров и уроков в свободном доступе. У вас это ОТЛИЧНО получается!

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