ТранспортМодаРецептыБлогиОхотаПутешествияСпортВесельеСвоими РукамиITЗнания
Мини-Игры
x

x
zakruti.com » ru » IT – Софт » Обучение Microsoft Office
Arrays VBA - Одна переменная для множества значений! - (Серия VBA 12)

Arrays VBA - Одна переменная для множества значений! - (Серия VBA 12)

VKTwitterOK

содержание видео

Рейтинг: 4.0; Голоса: 1
Пришла пора наконец хорошо познакомиться с переменными в VBA для работы с массивами данных Arrays. Это и будет темой нашего сегодняшнего видео! Вот коротко пункты о содержании этого видео: Как объявить Arrays, или же переменную для сохранения целого массива данных, в VBA Как вписывать значения в Arrays по отдельности и целым массивом LBound и UBound Посмотрим, как с помощью этих фраз находить нижние и верхние границы рассматриваемой переменной для работы с массивами данных Объявление динамичных Arrays и работа с ними (В том числе поговорим о фразе ReDim) И конечно же будет занимательное домашнее задание (уже более сложного уровня, решение которого будет показано в следующем видео!
Дата: 2021-09-02

Комментарии и отзывы: 10


Билял здравствуйте. Подскажите пожалуйста одну вещь. Задача вроде проста, но что то не получается. Мне нужно посчитать последнюю строку в колонке. В колонке сверху вниз подряд идут наборы чисел с 1по 31 ячейку. А точнее в диапазоне с 1 по 31 подряд идут числа с 1 по 25 или 26 или 27, но заведомо я не знаю какое это будет число, но диапазон знаю до 31. Весь смысл в том что в этом диапазоне протянула формула и если истина, то она ставит число, если ложь, то пусто. Как раз и получается, что если чисел 25, то хвост со значением пусто будет 6 итд. Так вот в чём проблема я использую ровс. Каунт и он хвост этот тоже считает. тоесть всегда 31. Я уже копировал в другом колонку с помощью кода вба. Естественно, в этой колонке с 1 по 25или 26 или 27 копируется числа, хвост пустой, чистый. Но все равно последнюю строку он находит 31. Я туплю где? Отзовитесь пожалуйста?
ответить

Добрый день, верно ли я понимаю, что для выполнения домашнего задания некоторые пользователи для определения верхней границы массива использовали Cells(Rows. Count, 2. End(xlUp. Row, вопрос, а для чего в таком случае нужны Lbound и Ubound? Я могу в цикле for сразу прописать: For i = 2 To Cells(Rows. Count, 2. End(xlUp. Row, а Lbound и Ubound убрать из кода, что сократит его на половину, получается верхнюю границу динамического массива определяет не Ubound, а Cells(Rows. Count, 2. End(xlUp. Или же могу вообще прописать exit for при достижении в цикле пустой ячейки. Подскажите пожалуйста в чем смысл Lbound и UBound после мною вышеописанного? Спасибо!
Ps уже который сайт смотрю, видео, но не могу понять в итоге почему считается что Lbound и Ubound определяет границы динамического массива, когда по сути мы их задаем.

ответить

Здравствуйте!
Хотел бы попросить помочь в решении задачи.
Дано:
1. в ячейке А1 пишется слово буква или цифра
2. в столбце В в случайном порядке каждая ячейка содержит слово буква или цифра (диапазон ячеек в столбце В переменный)
3. в столбце С напротив буква или цифра столбца В указаны соответственно какие-либо буквы (а, б, е, я и т. п) или цифры (1, 2, 4, 8 и т. п)
Необходимо:
В зависимости от того, какое слово указано в ячейке А1, в столбце Е, начиная с ячейки Е1, вывести весь перечень букв или цифр из столбца С в порядке их нахождения сверху-вниз.
Возможно ли решить эту задачу при помощи освещённых тем?

ответить

Билял, спасибо за замечательный курс! Не то слово, что приятно) Я впечатлён Вашим преподношением материала в сериях роликов по VBA! Не останавливайтесь ни в коем случае: построение урока, с рассмотрением решений домашних заданий - замечательно. Скорость и прямота, без слов-паразитов, грамотное изложение - всё просто супер! Касаемо данного урока есть вопрос: при написании процедур я часто передаю параметры в другие процедуры, но ByVal не указываю, а просто передаю переменные и их типы! Это некорректно с моей стороны? Чем это чревато, если что?
ответить

Спасибо.
по поводу дз: как быть, если в массиве данных есть пустые строки? Как через алгоритм if убрать из цикла эти строки?
вопрос 2: можно ли прописать код на остановку действующего макроса? например, я включил макрос и через пару сек понял, что хочу его отменить, и хочу сделать это через отдельную кнопочку, а не через зажимание esc - как это реализовать?

ответить

Есть ещё вопрос большой, но не по данной серии курса: из-за моей цели работать над универсальными программками, работающими на любой версии Office (32 или 64 бита) столкнулся с проблемой декларирования функций. Для меня это сложно к пониманию. Не могли бы Вы подготовить, как Вы умеете! достойный материал на эту тему? Ещё раз спасибо за Ваши уроки!
ответить

Билял, где-то в твоих видео видел, но не могу найти сейчас: мне нужно выделить диапазон из заполненных ячеек в книге, как это сделать в VBA? У меня в книге несколько диапазонов разделены пустыми строками. Мне надо некоторые из них выделить и кое-что применить к выделенному) Там какая-то простая команда VBA, подскажи пожалуйста)
ответить

Здравствуйте! Полностью сама написала )
Sub HomeWork)
Dim dinArray)
Dim lBoundO As Long
Dim uBoundO As Long
Dim i As Long
Dim a As Long
Dim strName As String
a = 3
i = Worksheets(1. Cells(Rows. Count, 2. End(xlUp. Row
lBoundO = 1
uBoundO = i - 2
ReDim dinArray(lBoundO To uBoundO)
Dim z As Integer
For z = LBound(dinArray) To UBound(dinArray)
strName = ActiveSheet. Range(B & a. Offset(0, -1)
MsgBox strName & оценка: & Range(B & a)
a = a + 1
Next z
End Sub

ответить

Здравствуйте.
Вот моё решение домашнего задания:
Option Explicit
Sub test)
Dim MarkArray ) as Long
Dim Mark As Long
Dim Name As String
Dim i As Long
Dim lBoundV As Long
Dim uboundV As Long
lBoundV = Sheet1. UsedRange. Row
uboundV = Sheet1. UsedRange. Rows. Count - 1
ReDim MarkArray(lBoundV To uboundV)
For i = LBound(MarkArray) To UBound(MarkArray)
Mark = Range(C & i + 1)
Name = Range(B & i + 1)
MsgBox Name & - Оценка: & Mark
Next i
End Sub

ответить

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






Другие видео канала