Мега-мега-мегаграмотное изложение материала и продуктивные уроки! Редкость на просторах интернета! Низкий Вам поклон за столь эффективное изложение материала по VBA! Вы педагог от Бога, продолжайте в том же духе! Низкий поклон за труды! Не поленюсь и напишу это коммент по каждым видео курса!!!
Здравствуйте, Андрей! Со своей стороны точно также не поленюсь и поблагодарю Вас за этот приятный комментарий под каждым видео точно так же :) С уважением и хорошего Вам дня, ХБ
Автор вы перфекционист в подаче материала, спасибо огромное! Занимаюсь аналитикой в excel и долго откладывала изучение vba, рада, что наткнулась на ваш канал) ❤
Решил отметиться в комментариях, чтобы поддержать развитие канала) Огромное спасибо за грамотное и подробное изложение материала, посмотрел пока 11 уроков и очень доволен. Желаю вашему каналу расти! А вам продолжать в том же духе!
Здравствуйте, Артем! Большое спасибо за Ваш комментарий, очень рад, что видео Вам понравились и были полезны! Буду и дальше снимать полезные и содержательные видео 😊 С уважением и хороших Вам выходных, Билял
Очень удачно подаётся материал по урокам от лёгкого к сложному. Пока даже я все понимаю. В подобных курсах все по-другому, первые два урока норм, а затем бац интегралы и логорифмы.
Здравствуйте, Герман! Спасибо за Ваш комментарий. Очень рад, что получается подписчикам преподносить материал таким образом, как Вы это описали. И дальше буду стараться делать контент лишь интереснее и полезнее, с сохраняющейся при этом простотой подачи материала :) С уважением, ХБ
Спасибо вам большое, на удивление быстро выполнил задание, правда немного подсмотрел в прошлые уроки, но думаю, всё так быстро получилось благодаря вашему грамотному и понятному объяснению!
Здравствуйте, Сергей! Очень рад, что Вам нравятся уроки, и здорово, что домашнее задание Вам так хорошо далось! На днях буду снимать следующее видео. Хорошего Вам дня :)
Может конечно многим не новость - if не всегда нужно закрывать end if(но по началу лучше всегда, так точно не запутаешься и не получишь однажды ошибку))) Биллу однозначно респект, лайк, подписка. По твоим стопам постараюсь повысить свой любительской уровень. Большое спасибо за такие содержательные видео, обязательно посмотрю все. ДЗ ниже Sub DZ() Dim z As Range For Each z In Range("C3:C7") If z.Offset(0, -1) = "3" Then z.Value = "Удовлетворительно" If z.Offset(0, -1) = "4" Then z.Value = "Хорошо" If z.Offset(0, -1) = "5" Then z.Value = "Отлично" Next z End Sub
Подскажите пожалуйста Как прописать код, для замены значений в диапозоне по условию. Пробую использовать оператор "Replace" но с ним не выходит. Хочу написать код, который будет заменять значения в ячейках по условию. Например: там где в таблице будет "СПБ 11:00" - заменить время на "10часов" и что бы стал в ячейке "СПБ 10:00". (своего рода изменение часов работы, по условию: город и время) Пытаюсь все написать код, но ни как не выходит. Спасибо за помощь!
Здравствуйте, еще раз спасибо за урок:). Вот домашнее задание с учетом изученного в прошлом. Sub test2() Dim cellChecked As Range Dim randomHw As Range Dim describe1 As String Dim describe2 As String Dim describe3 As String Dim describe4 As String With ThisWorkbook.Sheets(2) describe1 = .Cells(12, 3) describe2 = .Cells(13, 3) describe3 = .Cells(14, 3) describe4 = .Cells(15, 3) End With For Each randomHw In ThisWorkbook.Sheets(2).Range("B3:B7") randomHw = WorksheetFunction.RandBetween(2, 5) Next randomHw For Each cellChecked In ThisWorkbook.Sheets(2).Range(Worksheets(2).Cells(1, 2), Worksheets(2).Cells(7, 2)) If cellChecked.Value = 2 Then cellChecked.Offset(0, 1) = describe4 ElseIf cellChecked.Value = 3 Then cellChecked.Offset(0, 1) = describe3 ElseIf cellChecked.Value = 4 Then cellChecked.Offset(0, 1) = describe2 ElseIf cellChecked.Value = 5 Then cellChecked.Offset(0, 1) = describe1 End If Next cellChecked End Sub Кстати, я попробовал перед циклом For Each написать переменную CheckedRange = ThisWorkbook.Sheets(2).Range(Cells(1, 2), Cells(7, 2)) , чтобы потом просто получилось For Each cellChecked In CheckedRange. Не получилось, VBA ругался. Я задавал CheckedRange и как Variant, и как Range. Upd: разобрался. Я для объекта Checkedrange писал Checkedrange =, а надо было Set Checkedrange
Здравствуйте, Владимир! Спасибо за Ваш вариант решения домашнего задания! :) В своём решении Вы очень здорово встроили функцию RandBetween для случайного присуждения оценок. Касательно Вашей заметки о проблеме с использованием checkedRange (которую Вы самостоятельно решили - что очень здорово, так держать!): это интересная особенность VBA, что в зависимости от типа данных переменной может отличаться также и метод сохранения в ней значений. Будьте внимательны с Set - так это выражение Вам также понадобится, например, при работе с Collection, Workbook, Worksheet и так далее. Скорее всего стоит снять короткое видео, посвященное данной теме, как думаете? :) С уважением, ХБ
Bill K., лично я - за! Было бы очень здорово. У вас в одном из предыдущих уроков отлично про цепочку рассказано: книга-лист-ячейка, вот можно либо туда добавить, либо как дополнение отдельный видео урок.
Спасибо, я хоть и пользовался уже циклами и проверкой значений, но всё таки кое чего нового узнал(учился методом тыка). Только насколько я понял из тех документации есть ещё вариант вместо Then ставить GoTo, но не пользовался сам.
Присоединяюсь к ранним комментариям. Видео действительно очень достойно и внимания и изучения. Хотелось бы спросить по ситуации есть задача найти в строках элементы, в (D3:D20) заканчиваются на *-0008-005* из следующих значений, которые расположены в столбцах ПР000-0008-005 Fg001-0006-004 Df004-0008-005 Я пробовал через следующую схему, как в уроке Dim cellchecked As range If cellchecked = *-0008-005* Then Cellcheked.offset(0,3)= " ok" End if Next cellchecked По такому коду у меня не получается выполнить задачу.
Здравствуйте, Олег! Спасибо за Ваш комментарий, очень рад что видео уроки Вам помогают 😊 Касательно Вашего вопроса: Смотрите, Ваша условная структура не работает, так как в ней проверяется целиком всё содержимое ячеек, то есть: является ли Df004-0008-005 равным -0008-005? В таком случае проверка, естественно, будет выдавать ЛОЖЬ, так как эти два значения разные. При этом Ваша задача, как я понял, состоит в проверке именно последних девяти символов, а именно являются ли эти девять символов из условно скажем значения xxxxx-xxxx-xxx равными значению -0008-005 Чтобы проверить такую задачу Вам нужно «вырезать» последние 9 букв/цифр, сделать это можно вот так: Right(cellChecked, 9) Таким образом ячейка со значением Fg001-0006-004 будет возвращать -0006-004, а со значение Df004-0008-005 как раз проверяемый Вами текст -0008-005. И в таком случае проверка успешно сработает и будет вписано значение «Ок». Вот примерный код: Sub exampleAnswer() Dim cellChecked As Range For Each cellChecked In Range("D3:D20") 'Переделайте в эксплицитное указание If Right(cellChecked, 9) = "-0008-005" Then cellChecked.Offset(0, 3) = "ok" End If Next cellChecked End Sub С уважением, Билял
@@BilyalKhassenov Билял, всё супер!!! Спасибо. Продолжаю дальше смотреть видео и совершенствовать познания. И мне не понятно, почему такой качественный материал от находится где-то внизу поиска на Ютубе.
Добрый вечер. Подскажите, почему если ввести такой код, то выдает ошибку end if without block if, но если энд иф убрать, то макрос идет? Sub hw() For Each cellchecked In Range("b3:b7") If cellchecked = 3 Then cellchecked.Offset(0, 1) = "Удов" If cellchecked = 4 Then cellchecked.Offset(0, 1) = "Хор" If cellchecked = 5 Then cellchecked.Offset(0, 1) = "Отл" End If
Добрый день, не могу разобраться в чем ошибка выполнении домашнего задания: Option Explicit Sub Homework () Dim cellcheked As Range For Each cellcheked In Range ("B3:B7") If cellcheked = 5 Then cellcheked.Offset(0, 1) = "Excellent" If cellcheked = 4 Then cellcheked.Offset(0, 1) = "Good" If cellcheked = 3 Then cellcheked.Offset(0, 1) = "Bad" End If Next cellcheked End Sub При попытке проверить появляется сообщение: "Compile error Next without For" Буду очень благодарна за посказку
Привет Билял! домашку я выполнил по другому, самом в excelе я написал формулу =ЕСЛИ(B3=5;"отл";ЕСЛИ(B3=4;"хор";"удов")) а потом через запись макроса поставил формулу на все ячейки ... так быстрее получилось )))
Отличный курс, спасибо! Только при условии Range("A1") = "Пример" истина, если Ячейка А1 именно равна тексту "Пример", а не содержит текст "Пример". Т.е. текст "Пример заразителен" содержит слово "Пример", но при это условие не выполнится.
А в VBA 7.1 синтаксис Range иной и почему то диапазон не видит VBA. Пишу например, Range ("A1, D4") проверяется только ячейка A1, на двоеточие внутри скобок реагирует как на ошибку.
Добрый день! Подскажите в чем ошибка в домашнем коде, пожалуйста. Выдает 424 ошибку: object required Sub tets() Dim cellCheked As Range For Each cellCheked In Range("B3:B7") If cellCheked = 3 Then cellCheked.Offset(0, 1) = "удовлетворительно" ElseIf cellCheked = 4 Then cellscheked.Offset(0, 1) = "хорошо" ElseIf cellCheked = 5 Then cellscheked.Offset(0, 1) = "отлично" End If Next cellCheked
Здравствуйте Екатерина, обратите внимание на условия для оценок "Удовлетворительно" и "Отлично" - там Вы вписали не cellChecked, а cellsChecked - с лишней буквой s. Попробуйте убрать её, и по идее всё должно заработать :) Если что - всегда обращайтесь :) С уважением и хороших Вам выходных, Билял
@@ЕкатеринаКотлярова-щ7л Всегда пожалуйста, рад помочь. А так - ничего страшного, бывает, что вот так «недоглядишь» в VBA некоторые моменты. Если что обращайтесь, Екатерина 😊 С уважением и хорошего Вам дня, Билял
Добрый. А можно ли группировать в For Each cellChecked из двух Range ? С помощью and ? Тогда это будет For Each cellchecked1 in Range (x,x) and cellchecked2 in Range (y,y)? спасибо
Sub oriental() Dim cellcheck As Range For Each cellcheck In Range("A3:A7") If cellcheck.Value = "анна" And cellcheck.Offset(, 2).Value = "Отлично" Then cellcheck.Offset(, 3).Value = "То что надо" Else cellcheck.Offset(, 3).Value = "Другое" End If Next End Sub Схематично если
Здравствуйте. Вашу уроки, просто супер!!! Подскажите, что я делаю не так... Я пишу всё как в примере, но у меня (я про elseif) выскакивает диалоговое окно только с пятерками! Когда пятерки заканчиваются ничего больше не выдает. Будто он не переходит на elseif
Добрый день! Большое спасибо за уроки! Пытаюсь реализовать функцию переноса данных Ф.И.О. сотрудников с листа "Матрица" на лист "Инсруктаж", по условию на другой лист. Где Ф.И.О. находятся на листе "Матрица, в колонке B, условия в столбце I. Однако переносится только 1 значение, и цикл не работает. Sub ЗагрузкаДанных() Dim A As Range For Each A In Workbooks("Обучение_тест").Worksheets("Матрица").Range("I2:I1800") If A = "да" Then Workbooks("Обучение_тест").Worksheets("Инструктаж").Range("B2") = Workbooks("Обучение_тест").Worksheets("Матрица").Range("B2") ElseIf A = "нет" Then Workbooks("Обучение_тест").Worksheets("Инструктаж").Range("B2").Delete End If Next A MsgBox ("Обновление графикa обучения завершено.") End Sub
Спасибо за уроки. Дальше Спойлер ДЗ Sub Урок9 () Dim Osenka As Range For Each Osenka In Range("B3:B7") If Osenka = 3 Then Osenka.Offset(0, 1) = "Удовл: " & Osenka.Offset(0, -1) ElseIf Osenka = 4 Then Osenka.Offset(0, 1) = "Хорошо: " & Osenka.Offset(0, -1) ElseIf Osenka = 5 Then Osenka.Offset(0, 1) = "Отлично: " & Osenka.Offset(0, -1) End If Next Osenka End Sub
Sub test() Dim check As Range For Each check In Range("B3:B8") If check = 2 Then MsgBox check.Offset(0, -1) & ": Неудовлетворительно" check.Offset(0, 1) = "Неуд"
Sub Ocenka() Dim checkcel As Range For Each checkcel In Range("B3:B7") If checkcel = 3 Then checkcel.Offset(0, 1) = "Удовлетворительно" ElseIf checkcel = 4 Then checkcel.Offset(0, 1) = "Хорошо" ElseIf checkcel = 5 Then checkcel.Offset(0, 1) = "Отлично" End If Next checkcel End Sub
код написал. У меня работает. Ответ боюсь смотреть. Вдруг затупил. Оставлю его тут. никому не подсматривать! Sub HomeWork1() Dim checkscore As Range For Each checkscore In Range("B3:B7") If checkscore = 5 Then checkscore.Offset(0, 1) = "отлично"
ElseIf checkscore = 4 Then checkscore.Offset(0, 1) = "хорошо" ElseIf checkscore = 3 Then checkscore.Offset(0, 1) = "удовлетворительно" End If Next checkscore End Sub
Даже немного удивительно, что можно найти на просторах ютуба материал такого качества бесплатно, большое спасибо автору! Очень круто и понятно
Здравствуйте, Алексей!
Большое спасибо за Ваш комментарий! Очень рад, что видео понравились и помогли Вам 😊
С уважением и хороших Вам выходных,
Билял
Мега-мега-мегаграмотное изложение материала и продуктивные уроки! Редкость на просторах интернета! Низкий Вам поклон за столь эффективное изложение материала по VBA! Вы педагог от Бога, продолжайте в том же духе! Низкий поклон за труды! Не поленюсь и напишу это коммент по каждым видео курса!!!
Здравствуйте, Андрей!
Со своей стороны точно также не поленюсь и поблагодарю Вас за этот приятный комментарий под каждым видео точно так же :)
С уважением и хорошего Вам дня,
ХБ
Автор вы перфекционист в подаче материала, спасибо огромное! Занимаюсь аналитикой в excel и долго откладывала изучение vba, рада, что наткнулась на ваш канал) ❤
Билял, благодарю! С домашним заданием я справился самостоятельно! Ура! )
Классно, буквально за несколько Ваших уроков у меня в руках удобный и современный инструмент для углубленной работы с эксцель.
Спасибо!
Очень крутой цикл презентаций. Доступно, интересно и полезно. Спасибо огромное! Это очень круто!)
Ура! Получилось)
Спасибо Вам за грамотное и понятное изложение! Всё чётко, по порядку, приятно смотреть и слушать)
Здравствуйте, Валентина!
Всегда пожалуйста, рад стараться и рад, что видео Вам помогло! 😊
С уважением и хороших Вам выходных,
Билял
Решил отметиться в комментариях, чтобы поддержать развитие канала) Огромное спасибо за грамотное и подробное изложение материала, посмотрел пока 11 уроков и очень доволен. Желаю вашему каналу расти! А вам продолжать в том же духе!
Здравствуйте, Артем!
Большое спасибо за Ваш комментарий, очень рад, что видео Вам понравились и были полезны! Буду и дальше снимать полезные и содержательные видео 😊
С уважением и хороших Вам выходных,
Билял
Очень удачно подаётся материал по урокам от лёгкого к сложному. Пока даже я все понимаю. В подобных курсах все по-другому, первые два урока норм, а затем бац интегралы и логорифмы.
Здравствуйте, Герман!
Спасибо за Ваш комментарий. Очень рад, что получается подписчикам преподносить материал таким образом, как Вы это описали. И дальше буду стараться делать контент лишь интереснее и полезнее, с сохраняющейся при этом простотой подачи материала :)
С уважением,
ХБ
Спасибо вам большое, на удивление быстро выполнил задание, правда немного подсмотрел в прошлые уроки, но думаю, всё так быстро получилось благодаря вашему грамотному и понятному объяснению!
Здравствуйте, Александр!
Очень рад, что задания у Вас отлично получаются! Спасибо большое за Ваш комментарий и хорошего Вам дня 😊
С уважением,
Билял
Спасибо! Выглядит сложно, но в процессе с вами все становится понятно.
Качество подачи сложного материала 5+,Огромное спасибо
Получилось с первого раза, Спасибо)
Спасибо за ваш труд. Очень качественно! Домашку сделал)
Успешно выполнил домашнее задание. Спасибо за урок!
Здравствуйте, Сергей!
Супер! Рад, что у Вас всё получается 😊
С уважением,
Билял
Спасибо автору, очень крутой материал
Спасибо, хороший урок. Да все остальные уроки. Сделал домашку 2-я способами
Здравствуйте, Сергей! Очень рад, что Вам нравятся уроки, и здорово, что домашнее задание Вам так хорошо далось! На днях буду снимать следующее видео. Хорошего Вам дня :)
Спасибо! Очень все понятно! И да, у меня получилось домашнее задание.
Спасибо Билял. Все получается, и интересно.
Отличный Урок!
Может конечно многим не новость - if не всегда нужно закрывать end if(но по началу лучше всегда, так точно не запутаешься и не получишь однажды ошибку))) Биллу однозначно респект, лайк, подписка. По твоим стопам постараюсь повысить свой любительской уровень. Большое спасибо за такие содержательные видео, обязательно посмотрю все. ДЗ ниже
Sub DZ()
Dim z As Range
For Each z In Range("C3:C7")
If z.Offset(0, -1) = "3" Then z.Value = "Удовлетворительно"
If z.Offset(0, -1) = "4" Then z.Value = "Хорошо"
If z.Offset(0, -1) = "5" Then z.Value = "Отлично"
Next z
End Sub
Добрый вечер, можно селлчек заменить на z?
Спасибо за урок. Очень легко и доступно.
Спасибо тебе, добрый человек.
потрясающе
Огромнейшее спасибо!
Хороший урок, спасибо
Огромное спасибо!!!
Подскажите пожалуйста
Как прописать код, для замены значений в диапозоне по условию. Пробую использовать оператор "Replace" но с ним не выходит.
Хочу написать код, который будет заменять значения в ячейках по условию.
Например: там где в таблице будет "СПБ 11:00" - заменить время на "10часов" и что бы стал в ячейке "СПБ 10:00". (своего рода изменение часов работы, по условию: город и время)
Пытаюсь все написать код, но ни как не выходит.
Спасибо за помощь!
Очень очень интересно, спасибо
Здравствуйте, подскажите, а как теперь эти ячейки, которые мы заполнили описаниями оценок сделать, например, жирным шрифтом? Спасибо.
Здравствуйте, еще раз спасибо за урок:).
Вот домашнее задание с учетом изученного в прошлом.
Sub test2()
Dim cellChecked As Range
Dim randomHw As Range
Dim describe1 As String
Dim describe2 As String
Dim describe3 As String
Dim describe4 As String
With ThisWorkbook.Sheets(2)
describe1 = .Cells(12, 3)
describe2 = .Cells(13, 3)
describe3 = .Cells(14, 3)
describe4 = .Cells(15, 3)
End With
For Each randomHw In ThisWorkbook.Sheets(2).Range("B3:B7")
randomHw = WorksheetFunction.RandBetween(2, 5)
Next randomHw
For Each cellChecked In ThisWorkbook.Sheets(2).Range(Worksheets(2).Cells(1, 2), Worksheets(2).Cells(7, 2))
If cellChecked.Value = 2 Then
cellChecked.Offset(0, 1) = describe4
ElseIf cellChecked.Value = 3 Then
cellChecked.Offset(0, 1) = describe3
ElseIf cellChecked.Value = 4 Then
cellChecked.Offset(0, 1) = describe2
ElseIf cellChecked.Value = 5 Then
cellChecked.Offset(0, 1) = describe1
End If
Next cellChecked
End Sub
Кстати, я попробовал перед циклом For Each написать переменную CheckedRange = ThisWorkbook.Sheets(2).Range(Cells(1, 2), Cells(7, 2))
, чтобы потом
просто получилось For Each cellChecked In CheckedRange. Не получилось, VBA ругался. Я задавал CheckedRange и как Variant, и как Range.
Upd: разобрался. Я для объекта Checkedrange писал Checkedrange =, а надо было Set Checkedrange
Здравствуйте, Владимир!
Спасибо за Ваш вариант решения домашнего задания! :)
В своём решении Вы очень здорово встроили функцию RandBetween для случайного присуждения оценок.
Касательно Вашей заметки о проблеме с использованием checkedRange (которую Вы самостоятельно решили - что очень здорово, так держать!): это интересная особенность VBA, что в зависимости от типа данных переменной может отличаться также и метод сохранения в ней значений. Будьте внимательны с Set - так это выражение Вам также понадобится, например, при работе с Collection, Workbook, Worksheet и так далее.
Скорее всего стоит снять короткое видео, посвященное данной теме, как думаете? :)
С уважением,
ХБ
Bill K., лично я - за!
Было бы очень здорово. У вас в одном из предыдущих уроков отлично про цепочку рассказано: книга-лист-ячейка, вот можно либо туда добавить, либо как дополнение отдельный видео урок.
Спасибо, я хоть и пользовался уже циклами и проверкой значений, но всё таки кое чего нового узнал(учился методом тыка). Только насколько я понял из тех документации есть ещё вариант вместо Then ставить GoTo, но не пользовался сам.
Присоединяюсь к ранним комментариям. Видео действительно очень достойно и внимания и изучения.
Хотелось бы спросить по ситуации есть задача найти в строках элементы, в (D3:D20) заканчиваются на *-0008-005* из следующих значений, которые расположены в столбцах ПР000-0008-005
Fg001-0006-004
Df004-0008-005
Я пробовал через следующую схему, как в уроке
Dim cellchecked As range
If cellchecked = *-0008-005* Then
Cellcheked.offset(0,3)= " ok"
End if
Next cellchecked
По такому коду у меня не получается выполнить задачу.
Здравствуйте, Олег!
Спасибо за Ваш комментарий, очень рад что видео уроки Вам помогают 😊
Касательно Вашего вопроса:
Смотрите, Ваша условная структура не работает, так как в ней проверяется целиком всё содержимое ячеек, то есть: является ли Df004-0008-005 равным -0008-005? В таком случае проверка, естественно, будет выдавать ЛОЖЬ, так как эти два значения разные.
При этом Ваша задача, как я понял, состоит в проверке именно последних девяти символов, а именно являются ли эти девять символов из условно скажем значения xxxxx-xxxx-xxx равными значению -0008-005
Чтобы проверить такую задачу Вам нужно «вырезать» последние 9 букв/цифр, сделать это можно вот так:
Right(cellChecked, 9)
Таким образом ячейка со значением Fg001-0006-004 будет возвращать -0006-004, а со значение Df004-0008-005 как раз проверяемый Вами текст -0008-005. И в таком случае проверка успешно сработает и будет вписано значение «Ок».
Вот примерный код:
Sub exampleAnswer()
Dim cellChecked As Range
For Each cellChecked In Range("D3:D20") 'Переделайте в эксплицитное указание
If Right(cellChecked, 9) = "-0008-005" Then
cellChecked.Offset(0, 3) = "ok"
End If
Next cellChecked
End Sub
С уважением,
Билял
@@BilyalKhassenov
Билял, всё супер!!! Спасибо. Продолжаю дальше смотреть видео и совершенствовать познания.
И мне не понятно, почему такой качественный материал от находится где-то внизу поиска на Ютубе.
Добрый вечер. Подскажите, почему если ввести такой код, то выдает ошибку end if without block if, но если энд иф убрать, то макрос идет?
Sub hw()
For Each cellchecked In Range("b3:b7")
If cellchecked = 3 Then cellchecked.Offset(0, 1) = "Удов"
If cellchecked = 4 Then cellchecked.Offset(0, 1) = "Хор"
If cellchecked = 5 Then cellchecked.Offset(0, 1) = "Отл"
End If
Next cellchecked
End Sub
Коротко, содержательно, понятно. Курс на 5.
Добрый день, не могу разобраться в чем ошибка выполнении домашнего задания:
Option Explicit
Sub Homework ()
Dim cellcheked As Range
For Each cellcheked In Range ("B3:B7")
If cellcheked = 5 Then
cellcheked.Offset(0, 1) = "Excellent"
If cellcheked = 4 Then
cellcheked.Offset(0, 1) = "Good"
If cellcheked = 3 Then
cellcheked.Offset(0, 1) = "Bad"
End If
Next cellcheked
End Sub
При попытке проверить появляется сообщение:
"Compile error
Next without For"
Буду очень благодарна за посказку
Привет Билял! домашку я выполнил по другому, самом в excelе я написал формулу =ЕСЛИ(B3=5;"отл";ЕСЛИ(B3=4;"хор";"удов")) а потом через запись макроса поставил формулу на все ячейки ... так быстрее получилось )))
Крутяк
Отличный курс, спасибо! Только при условии Range("A1") = "Пример" истина, если Ячейка А1 именно равна тексту "Пример", а не содержит текст "Пример". Т.е. текст "Пример заразителен" содержит слово "Пример", но при это условие не выполнится.
А в VBA 7.1 синтаксис Range иной и почему то диапазон не видит VBA. Пишу например, Range ("A1, D4") проверяется только ячейка A1, на двоеточие внутри скобок реагирует как на ошибку.
&" : "&
Добрый день! Подскажите в чем ошибка в домашнем коде, пожалуйста. Выдает 424 ошибку: object required
Sub tets()
Dim cellCheked As Range
For Each cellCheked In Range("B3:B7")
If cellCheked = 3 Then
cellCheked.Offset(0, 1) = "удовлетворительно"
ElseIf cellCheked = 4 Then
cellscheked.Offset(0, 1) = "хорошо"
ElseIf cellCheked = 5 Then
cellscheked.Offset(0, 1) = "отлично"
End If
Next cellCheked
End Sub
Здравствуйте Екатерина,
обратите внимание на условия для оценок "Удовлетворительно" и "Отлично" - там Вы вписали не cellChecked, а cellsChecked - с лишней буквой s. Попробуйте убрать её, и по идее всё должно заработать :)
Если что - всегда обращайтесь :)
С уважением и хороших Вам выходных,
Билял
@@BilyalKhassenov какая же глупая ошибка(( спасибо Вам большое! Замечательный курс, очень все подробно и доступно рассказываете!
@@ЕкатеринаКотлярова-щ7л Всегда пожалуйста, рад помочь. А так - ничего страшного, бывает, что вот так «недоглядишь» в VBA некоторые моменты.
Если что обращайтесь, Екатерина 😊
С уважением и хорошего Вам дня,
Билял
Добрый. А можно ли группировать в For Each cellChecked из двух Range ? С помощью and ? Тогда это будет For Each cellchecked1 in Range (x,x) and cellchecked2 in Range (y,y)? спасибо
Надо к If применить and и offset. Разобрался
Sub oriental()
Dim cellcheck As Range
For Each cellcheck In Range("A3:A7")
If cellcheck.Value = "анна" And cellcheck.Offset(, 2).Value = "Отлично" Then
cellcheck.Offset(, 3).Value = "То что надо"
Else
cellcheck.Offset(, 3).Value = "Другое"
End If
Next
End Sub
Схематично если
Здравствуйте. Вашу уроки, просто супер!!!
Подскажите, что я делаю не так... Я пишу всё как в примере, но у меня (я про elseif) выскакивает диалоговое окно только с пятерками! Когда пятерки заканчиваются ничего больше не выдает. Будто он не переходит на elseif
Здравствуйте, Юлия! Скиньте свой код, тогда посмотрим :)
спс
Добрый день! Большое спасибо за уроки! Пытаюсь реализовать функцию переноса данных Ф.И.О. сотрудников с листа "Матрица" на лист "Инсруктаж", по условию на другой лист.
Где Ф.И.О. находятся на листе "Матрица, в колонке B, условия в столбце I.
Однако переносится только 1 значение, и цикл не работает.
Sub ЗагрузкаДанных()
Dim A As Range
For Each A In Workbooks("Обучение_тест").Worksheets("Матрица").Range("I2:I1800")
If A = "да" Then
Workbooks("Обучение_тест").Worksheets("Инструктаж").Range("B2") = Workbooks("Обучение_тест").Worksheets("Матрица").Range("B2")
ElseIf A = "нет" Then
Workbooks("Обучение_тест").Worksheets("Инструктаж").Range("B2").Delete
End If
Next A
MsgBox ("Обновление графикa обучения завершено.")
End Sub
15 сен 2022
Спасибо за уроки. Дальше Спойлер ДЗ
Sub Урок9 ()
Dim Osenka As Range
For Each Osenka In Range("B3:B7")
If Osenka = 3 Then
Osenka.Offset(0, 1) = "Удовл: " & Osenka.Offset(0, -1)
ElseIf Osenka = 4 Then
Osenka.Offset(0, 1) = "Хорошо: " & Osenka.Offset(0, -1)
ElseIf Osenka = 5 Then
Osenka.Offset(0, 1) = "Отлично: " & Osenka.Offset(0, -1)
End If
Next Osenka
End Sub
msgbox "Полужирный Николай"
Sub test()
Dim check As Range
For Each check In Range("B3:B8")
If check = 2 Then
MsgBox check.Offset(0, -1) & ": Неудовлетворительно"
check.Offset(0, 1) = "Неуд"
ElseIf check = 3 Then
MsgBox check.Offset(0, -1) & ": Удовлетворительно"
check.Offset(0, 1) = "Удовл"
ElseIf check = 4 Then
MsgBox check.Offset(0, -1) & ": Хорошо"
check.Offset(0, 1) = "Хорошо"
ElseIf check = 5 Then
MsgBox check.Offset(0, -1) & ": Отлично"
check.Offset(0, 1) = "Отлично"
End If
Next check
End Sub
5+
Sub Ocenka()
Dim checkcel As Range
For Each checkcel In Range("B3:B7")
If checkcel = 3 Then
checkcel.Offset(0, 1) = "Удовлетворительно"
ElseIf checkcel = 4 Then
checkcel.Offset(0, 1) = "Хорошо"
ElseIf checkcel = 5 Then
checkcel.Offset(0, 1) = "Отлично"
End If
Next checkcel
End Sub
код написал. У меня работает. Ответ боюсь смотреть. Вдруг затупил. Оставлю его тут.
никому не подсматривать!
Sub HomeWork1()
Dim checkscore As Range
For Each checkscore In Range("B3:B7")
If checkscore = 5 Then
checkscore.Offset(0, 1) = "отлично"
ElseIf checkscore = 4 Then
checkscore.Offset(0, 1) = "хорошо"
ElseIf checkscore = 3 Then
checkscore.Offset(0, 1) = "удовлетворительно"
End If
Next checkscore
End Sub
Sub lesson9_home_work()
'При помощи структры иф и фор ич пробижались по колонке с3-с7 и выдали коментарий отлично хорошо удовлитворительно
Dim cellchecked As Range
For Each cellchecked In Range("b3:b7")
If cellchecked = 3 Then
cellchecked.Offset(0, 1) = "Удовлитворительно"
ElseIf cellchecked = 4 Then
cellchecked.Offset(0, 1) = "Хорошо"
ElseIf cellchecked = 5 Then
cellchecked.Offset(0, 1) = "Отлично"
End If
Next cellchecked
End Sub
if и elseif и else - все в одном примере. Слишком перемудренный пример для знакомства.
За что мне 3?))