Excel VBA. Массивы (урок 17)
Вставка
- Опубліковано 15 чер 2020
- В данном видео вы узнаете что такое массив., какие виды массивов бывают, как объявить одномерный или двумерный массив, для чего используется оператор Option Base, как добавить элементы в массив и как извлечь элементы из массива.
1 урок: • Excel VBA. Что такое ...
2 урок: • Excel VBA. Объекты в ...
3 урок: • Excel VBA. Редактор VB...
4 урок: • Excel VBA. Глобальные,...
5 урок: • Excel VBA. Как правил...
6 урок: • Excel VBA. Операторы I...
#объектыVBA
#макросыExcel
#программированиеVBA
Вы молодец, продолжайте в том же духе !
Как всегда очень увлекательно и полезно👍🏼
Спасибо!
Спасибо! Все просто и понятно пояснили!
Благодарю ))
Подскажите, на 8:10 макрос 2, как правильно записать код, чтобы при нахождении слова Москва копировалось не по одной ячейке, а диапазоном? Sheets (”Лист3”).Range (“A” & Lr “:” & “F” & Lr) = arr (?????)
Нужно более детальное описание, какой именно диапазон (строку, столбец, несколько строк и столбцов) нужно копировать
@@ak-vba8006 я думаю вопрос был, можно ли в качестве элемента массива использовать сразу 6 ячеек в строке. Тогда непонятно, как задать критерий поиска ..
@@iskanderdoom6247 В качестве одного элемента массива можно использовать хоть 100 ячеек. Просто перед этим их нужно объединить, но смысла в этом не вижу. Что касается поиска, то всегда можно применить функцию InStr
подскажите код пожалуйста, как можно из массива подсчитать кол-во значений. Например в одномерном массиве от 1 до 31 содержащий символьный тип данных 1 - "В", 2-"Я", 3 -"Я", 4- "Б" и тд. Вывести результат в переменные или в ячейки Excel. Например, количество значений символа "В" - 8, "Я" - 20 и тд. И в коде указывать не явный символ, а автоматически определить значение из первого индекса, циклом подсчитать это значение в массиве, также из 2 до 31, 3 до 31. Но наверно можно как то с помощью функций сделать код проще и более быстродействующим. Спасибо
' Например данные находятся в первом столбце начиная с ячейки А1
Sub test()
Dim i&, s&, Count&
Count = 0 ' задаем значение переменной
arr = Range("A1", Cells(Rows.Count, 1).End(xlUp)) 'берем данные в двумерный массив
Dim Rcoll As New Collection ' объявляем новый экземпляр коллекции
For i = 1 To UBound(arr) 'цикл по массиву
On Error Resume Next 'если ошибка переходим к следующему значению
Rcoll.Add CStr(arr(i, 1)), CStr(arr(i, 1)) ' выбираем уникальные значения в коллекцию
Next
For i = 1 To Rcoll.Count 'цикл по элементам коллекции
Cells(i, 3) = Rcoll.Item(i) 'выгружаем уникальные значения в столбец "C"
For s = 1 To UBound(arr) 'цикл по массиву
If arr(s, 1) = Rcoll.Item(i) Then
Count = Count + 1 'считаем кол-во повторений
End If
Next
Cells(i, 4) = Count 'выгружаем кол-во в столбец "D"
Count = 0 'обнуляем переменную
Next
End Sub
спасибо@@ak-vba8006