Взаимодействие макросов - Call - ByVal, ByRef (Серия VBA 13)

preview_player
Показать описание
Всем привет! Касательно изучения темы взаимодействия нескольких процедур в VBA на русскоязычных ресурсах, лично у меня сложилось впечатление, что на эту тему фактически нет хороших уроков. Это видео призвано исправить данную ситуацию!
Вот что мы с Вами изучим в этом видеоуроке:
• Фраза Call – для запуска из одной процедуры других процедур
• Фраза ByVal –для передачи вызываемой процедуре неизменяемого параметра (фактически – значения/переменной) для выполнения определенной работы с этим параметром
• Фраза ByRef – для передачи вызываемой процедуре изменяемого параметра, в случае изменения которого в вызываемой процедуре, измененной значение направляется обратно в основную процедуру
• Как задавать несколько параметров для вызываемой процедуры
И в конце видео мы с Вами также рассмотрим один из примеров решения домашнего задания из предыдущего урока. Всем приятного просмотра! :)
Комментарии
Автор

Ты единственный на русскоязычном ютубе, кто толково разжевывает все! Только тебя смотрю каждый раз

TeenDriftSpirit
Автор

Мега-мега-мегаграмотное изложение материала и продуктивные уроки! Редкость на просторах интернета! Низкий Вам поклон за столь эффективное изложение материала по VBA! Вы педагог от Бога, продолжайте в том же духе! Низкий поклон за труды! Не поленюсь и напишу это коммент по каждым видео курса!!!

АндрейЛесников-зч
Автор

Спасибо, изложение материала самое грамотное и понятное, что я до этого встречал ) При этом если раньше материал усваивался в легкую, то с предыдущего урока стало чувствоваться, что сложность нарастает ))

vasiliyfm
Автор

огромное спасибо за грамотный и чрезвычайно наглядный видео-урок.Ценю ваше умение разъяснять сложные концепции простым языком и использовать наглядные примеры.

alexreznik
Автор

Огромное спасибо, супер курсы. Мне кажется, что этот курс можно вообще всем начинающим программистам давать, не зависимо от языка. Так как тут все подробно рассказывается, все основы!

ImmortalBullet
Автор

Подверждаю, на эту тему действительно очень мало русскоязычной информации в YouTube. Чёткое объяснение. Спасибо. Теперь нужно будет подумать, как встроить в моё множество макросов эти ByVal и ByRef. Потому что я их почти не использовал.

walerij
Автор

Очень полезно, столько лет работаю с ВБА, но сути не понимал раньше, просто брал готовые коды в интернете на форумах и пользовался ими, иногда чуток редактируя их, а сейчас решил разобраться и понять, изложение на 5 баллов!

МихаилБуев-еш
Автор

просмотрел 10 видео и принялся на основе полученных знаний "фиксить" свой говнокод...реально заработало, то что "работало" 2 мин, работает за 2 сек) я капец как был приятно удивлён) Спасибо за проделанную работу и труд, по проведению "ликбеза" (ликвидацию безграмотности)

ЕвгенийЛапшин-зд
Автор

Привет, слушай уроки супер. За неделю мое знание языка с 0 улетело в космос по моим ощущением . Все четко, понятно и по полочкам ! Было желание кодить, но сколько не пытался разобраться не как . А тут одна неделя и я теперь очень многое понял для себя . Во всю уже применяю на работе ! Работая с таблицами ) вобщем еще раз спасибо!

RolfRus
Автор

А я в 2010 все по книге Джона Уокенбаха учил. Как же везёт молодёжи сейчас!!!

ДмитрийПахомов-бу
Автор

Я не использовал byval. Просто в скобках передавал переменную. Все работало.
Ну как её явно объявить при приёме во второстепенной процедуре - не знал. VBA сам определял тип.
Теперь знаю как.
Спасибо, Билял.

Yevd
Автор

У вас просто потрясающий контент. Больше всего мне нравится момент с домашними заданиями, который заставляет самому прочувствовать, как это применять и заранее проработать некоторые ошибки. Мне кажется блог был бы куда популярнее, если бы демонстрировали видеоуроки по другим, более востребованным языкам программирования, тк тех, кто действительно доступно, последовательно и нескучно объясняет, не уходя в дебри, не так и много. Спасибо вам большое!!!

dashok_ro
Автор

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

shavkatpulatov
Автор

И да, уроки просто великолепные, спасибо за ваш труд!!)

АнтонинаБелорус
Автор

По ДЗ очень усложнил. У меня код в 2 раза короче и работает. Нужно было задание ставить сложнее, чтоб был смысл в диапазонах, иначе все все решается простым For each i in range(cells(#, #), cells(Lastrow, #).

nesquikttw
Автор

Решил домашнее задание предыдущего урока иначе. Не убирал заголовки для динамичного массива в нижней границе. Вместо этого указал начальное значение массива 2.
И не создавал два динамичных массива, "выстаскивал" имена учащихся через Offset.

Sub lessionArrays()

Dim dynArray() As Long

Dim lBoundVar As Long
Dim uBoundVar As Long

lBoundVar = 2
uBoundVar = Worksheets(4).Range("C" & Rows.Count).End(xlUp).Row


ReDim dynArray(lBoundVar To uBoundVar)

Dim i As Long

For i = LBound(dynArray) To UBound(dynArray)
dynArray(i) = & i)
MsgBox Range("C" & i).Offset(0, -1).Value & " оценка: " & dynArray(i)
Next i




End Sub


Еще раз спасибо за уроки! Интересно прорешивать домашние задания самому, и сравнивать, как их решают другие.

bananamastersup
Автор

с удовольствие, а главное с интересом посмотрел) заполняю пробелы, сидя на карантине)

Graver
Автор

Огромное спасибо за твои уроки, просто пушка, лайк на все! А вот по поводу домашнего задания с урока 12, я кажется смог написать его без массивов, поправь, если есть ошибка:)

Sub DZ_Urok_12()
Dim lastraw As Long
lastraw = Worksheets("Лист9").Cells(Rows.Count, 2).End(xlUp).Row
Dim i As Long
Dim b As Long
Dim c As String
For i = 2 To lastraw
b = Worksheets("Лист").Range("C" & i).Value
c = Worksheets("Лист").Range("B" & i).Value
MsgBox c & " Получил оценку: " & b
Next i
End Sub

grigorymoroz
Автор

За такие уроки я бы рекламу смотрел полностью, будь она интегрирована в ролик. Спасибо за обучение!

s.j
Автор

Это как ребёнка, сначала учить ползать, а потом БЕЖАТЬ. Даже имея небольшой опыт в программировании, от количества информации закипел. Пытался записывать, потом понял, что кода на несколько листов. Изложено хорошо, но с SET промашка, хорошо хоть я знаком с этой функцией, но для большинства людей, это взрыв мозга)))

yohohowowowo