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

КОМЕНТАРІ • 12

  • @user-fu5rv7wi6n
    @user-fu5rv7wi6n 2 роки тому +2

    Вы молодец, продолжайте в том же духе !

  • @linaliveday1315
    @linaliveday1315 4 роки тому +1

    Как всегда очень увлекательно и полезно👍🏼

  • @user-ie1og7sy9n
    @user-ie1og7sy9n 3 роки тому +1

    Спасибо! Все просто и понятно пояснили!

  • @evgenpushtakov8608
    @evgenpushtakov8608 2 роки тому

    Подскажите, на 8:10 макрос 2, как правильно записать код, чтобы при нахождении слова Москва копировалось не по одной ячейке, а диапазоном? Sheets (”Лист3”).Range (“A” & Lr “:” & “F” & Lr) = arr (?????)

    • @ak-vba8006
      @ak-vba8006  2 роки тому

      Нужно более детальное описание, какой именно диапазон (строку, столбец, несколько строк и столбцов) нужно копировать

    • @iskanderdoom6247
      @iskanderdoom6247 Рік тому

      @@ak-vba8006 я думаю вопрос был, можно ли в качестве элемента массива использовать сразу 6 ячеек в строке. Тогда непонятно, как задать критерий поиска ..

    • @ak-vba8006
      @ak-vba8006  Рік тому

      @@iskanderdoom6247 В качестве одного элемента массива можно использовать хоть 100 ячеек. Просто перед этим их нужно объединить, но смысла в этом не вижу. Что касается поиска, то всегда можно применить функцию InStr

  • @access-program
    @access-program 6 місяців тому +1

    подскажите код пожалуйста, как можно из массива подсчитать кол-во значений. Например в одномерном массиве от 1 до 31 содержащий символьный тип данных 1 - "В", 2-"Я", 3 -"Я", 4- "Б" и тд. Вывести результат в переменные или в ячейки Excel. Например, количество значений символа "В" - 8, "Я" - 20 и тд. И в коде указывать не явный символ, а автоматически определить значение из первого индекса, циклом подсчитать это значение в массиве, также из 2 до 31, 3 до 31. Но наверно можно как то с помощью функций сделать код проще и более быстродействующим. Спасибо

    • @ak-vba8006
      @ak-vba8006  6 місяців тому

      ' Например данные находятся в первом столбце начиная с ячейки А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

    • @access-program
      @access-program 6 місяців тому

      спасибо@@ak-vba8006