Ячейки в VBA: Как использовать Cells в VBA (Серия VBA 6)
Вставка
- Опубліковано 25 вер 2018
- Всем привет! Настало время познакомиться с таким объектом в VBA как Cells.
В этом видео мы с Вами поговорим о том, как же использовать данный объект для указания нужной ячейки или же целой области (в случае указания области, состоящей из более чем одной ячейки, мы будем с Вами использовать смешанный метод Range и Cells).
Всем приятного просмотра и полезных знаний! Если этот видеоурок был для Вас полезным, ставьте лайк и подписывайтесь на канал, ведь вместе мы с Вами быстро, очень качественно и интересно выучим VBA! :)
Смотрю 6 видео из подборки экспресс курс. Взахлеб смотрю и не могу оторваться! Очень интересно, удобно, познавательно! Спасибо вообще за то, что придумали такую возможность учиться макросам.
Tatiana, и как у уебя с этим на данный момент?)
Мега-мега-мегаграмотное изложение материала и продуктивные уроки! Редкость на просторах интернета! Низкий Вам поклон за столь эффективное изложение материала по VBA! Вы педагог от Бога, продолжайте в том же духе! Низкий поклон за труды! Не поленюсь и напишу это коммент по каждым видео курса!!!
Здравствуйте, Андрей!
Со своей стороны точно также не поленюсь и поблагодарю Вас за этот приятный комментарий под каждым видео точно так же :)
С уважением и хорошего Вам дня,
ХБ
Отличный видеокурс. Информация дается коротко, полно, без "мычания". Чувствуется рука мастера. Спасибо.
Очень познавательно и грамотно. Смотрю, тут же пробую. И чем больше получается, тем большее желание изучать VBA. Спасибо огромное за Ваше старание и уроки!
Уважаемый Гарик, здравствуйте! Большое спасибо за Ваш комментарий. Подобные комментарии всегда являются для меня знаком, что выкладываемые видеоуроки полезны зрителям канала. И это очень радует!
P.S. Буквально через полчаса на канале, после такого большого перерыва, появится новое видео ;)
Все здорово. И монтаж, и звук. И содержание.
Спасибо вам большое! Лучше уроков на ютубе не найти !
Здравствуйте, Александр! Большое спасибо за Ваш комментарий!
Рад, что мой канал полезен и помогает людям :)
С уважением
ХБ
просто ШИКАРНО! За такой материал надо платить!) Эффекты и музыка супер. Вы золото,автор!
Невероятно эффективно, коротко, по делу, без воды, с прикольными звуками из Mortal combat 3 ultimatum ;) и не только, лучшее что я видел на данный момент про VBA. Всем буду советовать.
Билял, благодарю! Мне понравился больше способ Range. Но для максимум возможностей конечно нужно знать все способы.
Всё доступно, понятно, так что не могу остановиться в изучении курса!!!
Отличные видео-уроки!❤ Сегодня, в т.ч. благодаря вам, решил нетривиальную задачу на работе, благодаря чему много человек в будущем сэкономят кучу времени 👏
Красавик. Начал смотреть. Надеюсь не заброшено и есть дальше пища для ума.
Bill, спасибо большое за видео, все четко, кратко(по теме) и очень красиво-наглядно. Буду смотреть все, возможно не по разу)
Все подробно и понятно, спасибо!
Для примера возьмем ячейку D2. Сослаться на эту ячейку можно множеством способов:
Cells(2, 4)
Cells(2, "D")
Range("D2")
[D2]
Можно именовать эту ячейку, например назвать ее "Ячейка". Тогда обратиться к ней можно так:
Range("Ячейка")
[Ячейка]
Если нужно сослаться на диапазон, например D2:G5, то это можно сделать без использования объекта Range:
Cells(2, 4). Resize(4, 4)
Здарвствуйте, Вадим!
Спасибо за приведенные примеры, хороших Вам выходных :)
С уважением,
ХБ
очень круто. Спасибо
Отлично. Спасибо
Спасибо за короткие уроки, когда видишь длинные уроки смотреть вообще неохото.
Здравствуйте Имман,
Да, стараюсь делать видео короткими и максимально содержательными, но зачастую бывают темы, которые просто невозможно упаковать в 15 минут 😊
Хороших Вам выходных! 😊
С уважением,
Билял
спасибо, автор!
Оба метода имеют своё применение, так что -- спасибо!
Спасибо 🏅
Классные уроки, прям профессионально все так рассказал-показал, очень наглядно и круто! Продолжай пожалуйста, получается очень хорошо! А подписчики набегут еще)) Просто VBA не очень популярная тема)
Добрый день! Большое спасибо за Ваш комментарий! То, что эти уроки полезны и помогают людям - наибольшая награда и стимул для меня, а подписчики и вправду, как Вы сказали, набегут! :)
По поводу новых видео не переживайте, следующая пара видео уже готовятся к скорому выходу :)
Если у Вас есть какие-либо пожелания, идеи или вопросы - пишите. С радостью помогу!
Хорошего Вам вечера! :)
@@BilyalKhassenov ну у меня уже в рекомендуемых это видео появилось, что хорошо) С удовольствием смотрю, видно прям все видео сделаны качественно старательно, прям молодец!!! Я сейчас пилю учет для себя в экселе на работе, пока рабочий вариант есть, все конечно переделывать надо, потому как говнокода слишком много)) Зато все работает)) Но есть интерес и благодаря вот этим видео я сделаю все лучше в версии 2.0 :)
Ну вообще супер! Скоро начнем изучать Userforms в VBA, и тогда Ваш рабочий учетный файл еще более удобным, полезным и эффективным станет!
Спасибо большое за Ваш интерес! :)
Если что - обращайтесь в любой момент :)
@@BilyalKhassenov вот Userforms - это как раз то, чего мне не хватает! Жду с нетерпением)
@@placid3495 Спасибо! Постараюсь поскорее дойти к этой теме :)
Cells хорош тем, что в циклах удобно использовать ;)
всё круто только если можно масштаб при написании формул увеличте до 15 хотя бы, а то если в свёрнутом виде смотреть уж совсем мелко написано приходитса масштаб увеличивать многократно,вот кастате как пример в начале ролика где крестиками указано номер Cells просто идеально ,просто приходитса конспектировать проверять самому и в полноэкранном режиме не удобно, а если из полноэкранного выйти шрифт уж совсем мелкий становитса, а так очень круто подробно и доходчиво
отлично
молодец, пожалуйста продолжай пилить уроки
Здравствуйте, Виталий! Большое спасибо за Ваш комментарий! На этой неделе запишу следующее видео, последний месяц просто совсем не было времени. Так что stay tuned, скоро выйдет следующий урок :)
Бааааалддеежжж!!
Билял, большое спасибо за уроки, с тобой VBA очень легко познаётся! Жаль только что при указании книги, листа и диапазона первым методом в скобках надо ещё кавычки ставить (" ") - не очень удобно...
Спасибо за полезные ролики! А можно сделать так, что бы я на одном листе сделал рассчёты, и затем по кнопке "перенести" ввёл полученные результаты в другой лист, а на первом удалил все значения, вновь посчитал что-то и вновь кнопкой "перенести" перенёс бы значения далее на следующую строку того же столбца и так до бесконечности.
спс
Спасибо за уроки .... вопрос в чём преимущество функции "Cells" если "Range" более понятнее и короче писать??
Все супер, а что на счет Selection?
Мне больше понравился способ Range, он проще и нагляднее
смотрю запоминаю.
Привет спасибо за уроки. Есть вопрос по поводу полученного адреса ячейки. А как можно изменить или воспользоваться значением address (a = r.Areas(r.Areas.Count).Address). Переменная а as String. Спасибо
Здравствуйте, Александр!
Использовать полученный адрес области можно самыми разнообразными способами в соответствии с Вашими текущими потребностями:
- Можно использовать адрес для поиска определённых значений в области при помощи Find, например: Range(a).Find("Test")
- Можно использовать адрес для проработки каждой отдельной ячейки в области с данным адресом, например:
Dim rgCellChecked As Range
For Each rgCellChecked In Range(a)
Debug.Print rgCellChecked.Value 'Здесь нужные Вам действия
Next rgCellChecked
-Можно обращаться к свойствам области под указанным адресом, например: MsgBox Range(a).Interior.Color
- И многое-многое другое - это лишь малая часть возможностей применения
Касательно изменения адреса - адрес области изменять невозможно. Если Вы хотите как-то идентифицировать полученную область, можно воспользоваться именованными областями, но это уже немного другая тема :)
С уважением,
ХБ
@@BilyalKhassenovЯ уже чуть по другому сделать, но все равно спасибо
@@BilyalKhassenov Снова привет. Я тут написал код к простой програмке. Суть такая: выскакивает форма 4 опшен-кнопок (верх, низ, право, лево) и кнопка "ОК". На листе выделяем несколько не смежных областей на листе. А последняя 1 выделенная ячейка куда скопировать и вставить эти ячейки (в 1 строку). Вставка от последней выделенной ячейки будет вправо или влево или вверх или вниз. Все вроде работает, но есть 2 момента. 1-работает медленно. 2- если в выделенной зоне больше 1-го столбца, то ячейки считываются горизонтально (это логично). Как сделать чтобы считывались вертикально. Пример проги могу предоставить. Спасибо
@@BilyalKhassenov Я предлагаю Вам идею. Создание видеоуроков по улучшению (решению) задач-кода (или написанию толкового кода) подписчиков. Я понимаю что за это берут деньги, но это также насыщает канал полезной информацией как по vba так и по программированию в целом. Разбор интересных задач.
Можно ли сделать ячейку активирующую макрос?
15 сен 2022
а если нужно в конец листа ячейки "а" вставить определенный текст, то это какой макрос будет?
На 5 минуте 30 секунде Вы заменяете координаты Cells на переменные rowindex и columnindex, сами переменные имеют свои координаты rowindex .cells (2,2) и columnindex.cells(3,2), если заменить переменные на изначальные ячейки то код будет такой:
Thisworkbook.worksheets(1).cells( cells(2,2), cells(3,2) ). получается что в конечном коде на колонку ссылается две координаты и на строку ссылается 2 координаты.
и в итоге непонятно какую строку и какой столбец эксель выбирает и почему. Прописываю всё это паралельно с Вами, все получается, но когда я попробовал изменить координату переменной rowindex.cells(2,2) на rowindex.cells(1,2) эксель выдал ошибку 1004
Не профи, но отвечу что и да и нет. Да - координаты переменные имеют, и нет - переменные объявлены Long, соответственно содержать могут только целые числа. Т.е. такая переменная не может содержать в себе координаты(область, ячейку или массив). Когда используются переменные - вместо них возвращаются значения переменных, а не ее координаты. А ошибка была, т.к. при rowindex.cells(1,2) переменная ссылается на пустую ячейку А2 и возвращает ""(ничего), поэтому VBA не смог построить координаты и соответственно выполнить необходимое действие.
А как обратиться в коде к неоткрытой книге?
Подскажите как перенести диапазон значений строк в столбец и наоборот?
Igor Efimov, приветствую Вас!
Выделить нужный диапазон - скопировать.
Выделить ячейку куда необходимо вставить - Правой кнопкой мыши открыть Контекстное меню (В разделе Параметры вставки: под значками нажать на «Специальная вставка…».)
Внизу возле кнопки «ОК» Поставить галочку «Транспонировать» и нажать «ОК».
я не поняла, почему в примере две переменные, которые каждая ссылаются на отдельную ячейку, обьеденины в координаты одной ячейки? На 5:48 минуте видео
Постоянно нужно писать полный путь Таблица.Лист.Ячейка?
Подскажи пожалуйста, что значит Cells(1)?
Клетка, ячейка
@@Tsynade1я про индекс? Это получается вся первая строка? А если написано cells(, 3), это получается весь 3й столбец?
@@nickivanov7903 , приветствую Вас!
Cells(1) - Нулевая строка(самая верхняя) в столбце «1»
Cells(2) - Нулевая строка(самая верхняя) в столбце «2»
Cells - Все строки и все столбцы листа
Почему название макроса CellsIsVBA?
cells метод
а кто знает где Билял сейчас? живой?
Дай Бог чтобы живой был
Получается, проще всегда использовать Range, чем городить Cells
Я только не понял где это применить можно. Пипец я далёкий,)))
Не совсем понял зачем нужен Cells, когда есть менее громоздкий и удобный Range
математик, приветствую Вас!
Cells(1, 1) - одна ячейка
Cells - Все строки и все столбцы(все ячейки) листа.
ThisWorkbook.Worksheets("Ëèñò10").Range(.cells(1, 1).cells(10, 5)) = 2
Ввожу и пишет ошибку что не так всю голову сломал
Добрый день подскажитте пожалуйста
ThisWorkbook.Worksheets("Лист10").Range(cells(1, 1),cells(10, 5)) = 2
Cells хорош тем, что в циклах удобно использовать ;)