Переменные и типы данных в VBA - Новый курс VBA (3)

  Рет қаралды 64,648

Билял Хасенов – Excel, VBA & More

Билял Хасенов – Excel, VBA & More

Күн бұрын

Пікірлер: 81
@Alex_St_
@Alex_St_ Жыл бұрын
Супер! Сам давно автоматизирую выполнение задач в приложениях Office на VBA и участвую на многих тематических форумах , однако с удовольствием просмотрел на досуге этот ролик. Очень хорошо и доступно автор разъясняет. Приятно слушать. Особенно порадовало то, что в отличие от большинства гуру VBA, автор рекомендует использовать Option Explicit в декларациях модуля. Это очень важно для новичков. Требование определения переменных позволяет легче обнаружить ошибки кода и опечатки при вводе имён переменных.
@Serega_Zaicev
@Serega_Zaicev 4 жыл бұрын
прогресс на лицо, в первой части курса тоже было не плохо , но тут живые примеры и их разборы, то чего так не хватало в первом курсе, в целом 3 урок нового курса очень радует да и ролики заметно по времени стали больше и подача материала очень классная и доходчивая
@vidosbaying
@vidosbaying 4 жыл бұрын
Объявил переменную только для L3 и остальное все влезло в одну строку MsgBox. Наверное такое решение с массой переменных подходит для большого количества кода, а здесь на мой взгляд очень избыточно. Многое знаю и умею, но Биляла смотрю с удовольствием. Спасибо за такой формат уроков!
@ppr8117
@ppr8117 4 жыл бұрын
Согласен! Но последние примеры в видео не на русском... Что-то, видимо, поменялось...
@mrkalinin7533
@mrkalinin7533 3 жыл бұрын
5 часов до дедлайна,все круто по материалу,добра автору!
@babunv2
@babunv2 3 жыл бұрын
Картинки для ассоциаций это прям лайк
@semforever1979
@semforever1979 2 жыл бұрын
Получил огромное удовольствие! Спасибо!
@alexgnite
@alexgnite Жыл бұрын
Когда решал задание, как-то не додумался, что я могу добавить переменные, использующие значения уже существующих 😅. В итоге я решил задачу через одну переменную и уже в самом MessegeBox'е через "Range" прописал где какой брать столбик. В итоге весь код уместил в читаемые 6 (+2 sub, end sub) строки. Но, признаю, хоть ваш код и огромный, но всё же гораздо лучше для понимания, чем то, что вышло у меня
@abdulfarid89
@abdulfarid89 4 жыл бұрын
Отличные уроки! Ждем новые! Очень ждем)
@nurlanmgn
@nurlanmgn 3 жыл бұрын
Почему в универе так не преподают!?!??!?! Спасибо за простую подачу!!!!
@werttyrus8966
@werttyrus8966 3 жыл бұрын
Это лучший курс!
@ОльгаЯремчук-л2в
@ОльгаЯремчук-л2в 3 жыл бұрын
Отличная задача, спасибо за труд)
@SamSambl4
@SamSambl4 4 жыл бұрын
Спасибо за трудъ!
@ВиленДаутов
@ВиленДаутов 3 жыл бұрын
Отличный урок! Решение понял сразу вот только было проблема вписать адрес строки в переменных
@maretarshakyan6249
@maretarshakyan6249 4 жыл бұрын
Спасибо, отлично, молодец
@Juk454
@Juk454 2 жыл бұрын
&-этот знак называется амперсанд, а конкатенация это операция, которую он выполняет ("склеивание")
@Badalaman
@Badalaman 3 жыл бұрын
Билял, огромное спасибо!
@Kavalergrad1
@Kavalergrad1 2 ай бұрын
Спасибо за урок
@ПШОДПОДПИШИСЬ
@ПШОДПОДПИШИСЬ 5 ай бұрын
Думаю еще стоило учесть, что нумерация по таблице смещена на 3 ячейки
@timopheysafonov2649
@timopheysafonov2649 3 жыл бұрын
Установлен Exel 2013 года, VBA выдает ошибку : "Method 'Range' of object' _ Global' failed и указывает на строку макроса: strcustomername = Range("D" & introwindex). Как устранить данную ошибку?
@Maks_Morkovkin
@Maks_Morkovkin 3 жыл бұрын
Спасибо. Очень круто. Я сделал иначе, более громоздко. Кстати, у Вас ошибка :) Надо было в itnКowIndex +3 задать :) Но смысл не меняется. Только вот Вы даете задание с использованием того, о чем не говорили. Я про кнопку, пробел для переноса строки кода, и и Vbnewline для переноса строки в сообщении. Это намеренно делается, что бы сами поискали?
@semforever1979
@semforever1979 2 жыл бұрын
Смысл в том, чтобы у зрителя алгоритм выполнения в голове нарисовался. Если это есть, то детали (как кнопку вывести, как сделать, чтобы введенное число совпадало с табличной строкой) добавить - раз плюнуть.
@MrActiBif
@MrActiBif Жыл бұрын
Comme on dit par chez nous, merci :)
@karineminasyan687
@karineminasyan687 3 жыл бұрын
Огромное спасибо
@thanekrios4431
@thanekrios4431 Жыл бұрын
У кого ошибка "Variable not difinded" ? Подскажите, пожалуйста, как исправить ?
@ЛеонидМахов-е7м
@ЛеонидМахов-е7м 2 жыл бұрын
При идентичном коде как у автора вылезает "runtime error 1004 method range of object global failed", при нажатии на Debug указывает строку: "strCustomerName = Range("C" & intRowIndex)" Может кто сталкивался?
@МаксМаксМакс-н9у
@МаксМаксМакс-н9у Жыл бұрын
тоже самое, не подскажите как решили данную проблему?
@АмалияАхметова-с9в
@АмалияАхметова-с9в Жыл бұрын
@@МаксМаксМакс-н9у , и у меня. Не подскажите, как решили?
@tassotasso1080
@tassotasso1080 10 ай бұрын
Кому еще актуально: 1) проверьте, как объявили соотв.переменные. Возможно, сослались не на тот столбец таблички (там имена покупателей в столбце D, а не С). Также по типам переменных, strCustomerName должна быть String, intRowIndex - Integer В коде это будет выглядеть так: Dim intRowIndex As Integer intRowIndex = Range("L3") Dim strCustomerName As String strCustomerName = Range("D" & intRowIndex ) 2) Если это не помогает, и упорно не хочет присваивать значение переменной, то попробуйте закомментить в самом начале кода Option Explicit. У меня не присваивалось значение переменной quantity, хотя и тип ставила Long, как в видео, и ссылка на диапазон правильная. При убирании Option Explicit - все заработало с тем же самым кодом.
@СергейГоликов-к3ю
@СергейГоликов-к3ю 2 жыл бұрын
А не лучше так? intRowIndex = Range("L3") + 3
@СергейЩепилин
@СергейЩепилин Жыл бұрын
заслуживает доната
@Александра-ю1п9и
@Александра-ю1п9и 2 жыл бұрын
Ругается на тип данных значения переменной-номера строки: выдает ошибку 13. Кто-нибудь сталкивался с ошибкой?
@scorp_07
@scorp_07 2 жыл бұрын
У меня можно сказать продвинутый уровень, но для меня сложновато. Несмотря на то, что немного понимаю в SQL
@ЕвгенийСергеев-ь5д
@ЕвгенийСергеев-ь5д 3 жыл бұрын
А зачем vbnewline? Можно ведь и с помощью Chr(10) или Chr(13) разбивать строки (если мне не изменяет мой склероз)
@NovichkovPavel3Run
@NovichkovPavel3Run 4 жыл бұрын
VBA типы данных
@ilkezavr
@ilkezavr 3 жыл бұрын
спасибо!
@xaycxep
@xaycxep 4 жыл бұрын
Пожалуйста, укажи свою почту по которой с тобой можно будет связаться
@vladimird4195
@vladimird4195 3 жыл бұрын
Не получается пишет неправильный синтаксис в msgbox. Вся строка strMassageToDisplay красная. Набирал строку по видео.
@allakhapilova9792
@allakhapilova9792 Жыл бұрын
попробуйте убрать перенос строки strMessageToDisplay = strCustomer & " ordered " & lngQuantity & " " & strProduct & "s. " & "The order's discount in Euro is: " & dblDiscount & ". The order's final amount in Euro is: " & dblAmount
@allakhapilova9792
@allakhapilova9792 Жыл бұрын
единственно, вставьте свои переменные.
@alexnu3316
@alexnu3316 Жыл бұрын
А почему кнопки нет?
@alexnu3316
@alexnu3316 Жыл бұрын
черт, где же у него кнопка?..
@Домснешка
@Домснешка 2 жыл бұрын
Почему макрос не выводит числа у меня ? Sub soult() Dim str1 As String Dim lng2 As Long Dim str3 As String Dim bld4 As Double Dim bld5 As Double Dim int6 As Integer Dim int7 As String int6 = Range("L3") 'ñîõðàíåíèå èíäåêñà ñòðîêè â ïåðåìåííîé str1 = Range("D" & int6) str2 = Range("G" & int6) str3 = Range("E" & int6) str4 = Range("I" & int6) str5 = Range("J" & int6) 'îáúåäèíåíèå ïîñëàíèÿ int7 = str1 & " èçìåëü÷åííûé " & lng2 & " " _ & str3 & "s" & vbNewLine _ & " ñêèäêà íà çàêàç â åâðî ðàâíî: " & bld4 & vbNewLine _ & " îêîí÷àòåëüíàÿ ñóììà çàêàçà â åâðî ðàâíî: " & bld5 'óäàëåíèå ñîîáùåíèÿ MsgBox int7 End Sub
@vladimird4195
@vladimird4195 3 жыл бұрын
и в Insert office 2007 нет кнопки
@izzatjonumarov7551
@izzatjonumarov7551 4 жыл бұрын
у меня выходит ошибка при присваивании результата. Автор можете помочь?
@ВаняНикифоров-п6л
@ВаняНикифоров-п6л 3 жыл бұрын
Я просто не знаю как в MsgBox перейти на следующую строчку. Поэтому получилось только в ряд всё написать 😔
@evaldasulevicius9406
@evaldasulevicius9406 3 жыл бұрын
Sub taskSolution() MsgBox "TEST" & Chr(13) & " Go To 2!" End Sub
@АнатолийХимей
@АнатолийХимей 3 ай бұрын
Урок супер, але є 2 але. 1. про команду кнопки не було мови, і 2 - про константи "абзац" теж нічого не згадувалось.
@alex-em4em
@alex-em4em Жыл бұрын
ГОТОВО
@KazakhKazakhstan85
@KazakhKazakhstan85 Жыл бұрын
Нет Билял без обид говоришь ну слишком быстро! Пусть ролик будет длинным но зато не спеша, а так приходиться прокручивать каждый раз
@Dmitrijs.Skorohodovs
@Dmitrijs.Skorohodovs Жыл бұрын
В общем, не знаю почему, но у меня просто отказывается читать Product name. Вместо содержимого ячейки, просто вставляет E5 . В чем может быть ошибка?.. Dim strCustomerName As String Dim LngQuantity As Long Dim strProductname As String Dim dmlDiscount As Double Dim dblAmount As Double Dim intRowIndex As Integer Dim strMessageToDisplay As String intRowIndex = Range("L3") 'Saving the row's index the variable' strCustomerName = Range("D" & intRowIndex) LngQuantity = Range("G" & intRowIndex) strProductname = ("E" & intRowIndex) dmlDiscount = Range("I" & intRowIndex) dblAmount = Range("J" & intRowIndex) 'Combining the message' strMessageToDisplay = strCustomerName & " ordered " & LngQuantity & " " & strProductname & " " & "s" & vbNewLine _ & "The order's discount in Euro is: " & dmlDiscount & vbNewLine _ & "The order's final amount in Euro is: " & dblAmount
@tassotasso1080
@tassotasso1080 10 ай бұрын
В присвоении переменной Productname пропущено Range. Поэтому и просто вставляет E5.
@Serega_Zaicev
@Serega_Zaicev 4 жыл бұрын
Dim main1 As Variant Dim main2 As Variant main1 = ThisWorkbook.Worksheets("Лист1").Range("f1") If main1 = Range("A1:A8") Then main2 = ActiveCell.Row MsgBox main2 что я не так делаю задаю 2 переменные, 1 переменная в "F1" вписан нужный мне товар и я хочу узнать индекс из столбца "A1:A8" с названиями товаров нужный мне и вывести номер строки нужного мне товара во второй переменной
@NovichkovPavel3Run
@NovichkovPavel3Run 4 жыл бұрын
VBA
@NovichkovPavel3Run
@NovichkovPavel3Run 4 жыл бұрын
VBA переменные
@tapacmop3e821
@tapacmop3e821 2 жыл бұрын
Работаю с числами в текстовом формате A1:A7 - текстовый формат (левое расположение в ячейке) 0011 0 203 100 ... Для переменной t1 объявляю String и задаю значение "0000" Dim t1$ t1 = "00000" теперь мне надо t1 соединить с А1 t1=t1 & Cells(1,1) должно получиться "00000011" но ячейка отображает "11"
@Gri6o4eg
@Gri6o4eg 2 жыл бұрын
У меня нет кнопки "Go"😡
@Gri6o4eg
@Gri6o4eg 2 жыл бұрын
У меня нет кнопки "Go"
@ГлебВалерьевич-у6ы
@ГлебВалерьевич-у6ы 3 жыл бұрын
Не знал, что можно сразу вписывать значения в диапазон ячеек, поэтому сделал так: Sub Button1_Click() Dim intCellValue As Integer intCellValue = Range("L3") Dim strCustomer As String strCustomer = "D" & intCellValue Dim strCustomerName As String strCustomerName = Range(strCustomer) Dim strCustomer2 As String strCustomer2 = "G" & intCellValue Dim strQuantity As String strQuantity = Range(strCustomer2) Dim strCustomer3 As String strCustomer3 = "E" & intCellValue Dim strProductName As String strProductName = Range(strCustomer3) Dim strCustomer4 As String strCustomer4 = "H" & intCellValue Dim strDiscount As String strDiscount = Range(strCustomer4) Dim strCustomer5 As String strCustomer5 = "J" & intCellValue Dim strAmount As String strAmount = Range(strCustomer5) MsgBox strCustomerName & " ordered " & strQuantity & " " & strProductName & "s" _ & vbNewLine & "The order's discount in Euro is: " & strDiscount _ & vbNewLine & "The order's final amount in Euro is: " & strAmount End Sub
@xaycxep
@xaycxep 4 жыл бұрын
а как же Find?
@mikjan2728
@mikjan2728 3 жыл бұрын
Неужели непонятно, что когда Вы снимаете учебное видео, то переменные должны быть 1-2х буквенные, чтобы человек, который смотрит видео мог и за мыслью успевать и понимать что вы там пишете, а не искать соответствие в именах нескольких 20и буквенных переменных???
@sastry85
@sastry85 3 жыл бұрын
у него в приоритете англоязычные уроки. Для англоязычных людей там всё понятно. увы.
@papericco2274
@papericco2274 2 жыл бұрын
Может вы просто поблагодарить его за бесплатные уроки, а не будете унижать себя публично, показывая свою глупость и безкультурие
@papericco2274
@papericco2274 2 жыл бұрын
Вы сами в силах сделать переменные однобуквенными, а автор объяснял, зачет так заморачивается
@papericco2274
@papericco2274 2 жыл бұрын
Из-за таких людей, как вы, многие и не хотят создавать что-то полезное бесплатно. А то сразу и критики найдутся, выплескивающие свое недовольство мелким члeнoм или недотраxoм в комментах
@papericco2274
@papericco2274 2 жыл бұрын
Позор
@MrValentin1865
@MrValentin1865 2 жыл бұрын
1. Размытость экрана; 2. Отдельным уроком нужно научить писать текст синтаксиса .
@fruitbanana9443
@fruitbanana9443 3 жыл бұрын
Бесит что все на английском
@timulnik
@timulnik 3 жыл бұрын
Билял, добрый день. Очень хорошая подача, структура, последовательность, темп. Именно то, что так долго искал. Но честно говоря очень режет слух обращение на "ты". Вас же могут слушать самые разные люди.
@nexx6899
@nexx6899 2 жыл бұрын
Сугубо личное: проговаривая "Ты" - приближаешь слушателя, "Вы" - держишь дистанцию. 2-е, имхо, в контексте урока лишено смысла.
@ДмитрийМельников-б4в8и
@ДмитрийМельников-б4в8и 2 жыл бұрын
Здравствуйте. Вы могли бы рассказать подробно об этой функции? Вы так хорошо объясняете. Комменты в функции есть, но все равно не могу понять ее полностью.. Функция сцепляет данные в ячейках по нескольким условиям. Function MergeIfs(TextRange As Range, SearchRange1 As Range, Condition1 As String, SearchRange2 As Range, Condition2 As String) Dim Delimeter As String, i As Long Delimeter = ", " 'символы-разделители (можно заменить на пробел или ; и т.д.) 'если диапазоны проверки и склеивания не равны друг другу - выходим с ошибкой If SearchRange1.Count TextRange.Count Or SearchRange2.Count TextRange.Count Then MergeIfs = CVErr(xlErrRef) Exit Function End If 'проходим по все ячейкам, проверяем все условия и собираем текст в переменную OutText For i = 1 To SearchRange1.Cells.Count If SearchRange1.Cells(i) = Condition1 And SearchRange2.Cells(i) = Condition2 Then OutText = OutText & TextRange.Cells(i) & Delimeter End If Next i 'выводим результаты без последнего разделителя MergeIfs = Left(OutText, Len(OutText) - Len(Delimeter)) End Function
@baracuda.5533
@baracuda.5533 2 жыл бұрын
Sub taskSolution() Dim tx1 As String Dim tx2 As String Dim tx3 As String Dim txX As String tx1 = Cells(Range("L3"), 4) & " ордер " & Cells(Range("L3"), 7) & " " & Cells(Range("L3"), 5) tx2 = "Скидка на заказ в евро составляет: " & Cells(Range("L3"), 9) tx3 = "Окончательная сумма заказа в евро составляет: " & Cells(Range("L3"), 10) txX = tx1 & vbCr & tx2 & vbCr & tx3 MsgBox txX End Sub
@alexeyvodovozov2667
@alexeyvodovozov2667 2 жыл бұрын
Шикарный код. Но, думаю, автор спецом дает более низкий начальный уровень, чтоб развилось понимание. Вашим кодом с нуля не пишут.
@user-ye2mm6ov6li
@user-ye2mm6ov6li 2 жыл бұрын
Шикарное видео. Отличный курс. Огромное вам спасибо
@nexx6899
@nexx6899 2 жыл бұрын
Спасибо!
@Gri6o4eg
@Gri6o4eg 2 жыл бұрын
У меня нет кнопки "Go"
Объектные переменные: Пример с Workbook - Worksheet - Range - Новый курс VBA (4)
22:53
Цикл For … Next - Новый курс VBA (8)
18:59
Билял Хасенов – Excel, VBA & More
Рет қаралды 28 М.
Beat Ronaldo, Win $1,000,000
22:45
MrBeast
Рет қаралды 158 МЛН
Мен атып көрмегенмін ! | Qalam | 5 серия
25:41
Свойства и Методы - Новый курс VBA (5)
11:45
Билял Хасенов – Excel, VBA & More
Рет қаралды 25 М.
Cells - Новый курс VBA (7)
16:32
Билял Хасенов – Excel, VBA & More
Рет қаралды 17 М.
VBA. УРОК 6: ПЕРЕМЕННЫЕ И ТИПЫ ДАННЫХ VBA
30:50
Бархатов Виталий (EXCEL, VBA, PowerBI)
Рет қаралды 1,7 М.
VBA для начинающих - Первые шаги - Новый курс VBA (2)
18:28
Билял Хасенов – Excel, VBA & More
Рет қаралды 121 М.
Цикл For Each - Новый курс VBA (9)
9:49
Билял Хасенов – Excel, VBA & More
Рет қаралды 18 М.
VBA (Использование классов и объектов) ч.1
22:03
Ruslan Scherbakov - kursoft ru
Рет қаралды 21 М.
Пишем игру "Жизнь" на VBA в Excel
21:39
Nikolay Pavlov
Рет қаралды 81 М.
ЧТО МЕШАЕТ ПИСАТЬ КОД НОВИЧКАМ
20:41