MyTetra Share
Делитесь знаниями!
Время создания: 31.07.2019 23:00
Текстовые метки: Массивы
Раздел: Разные закладки - VBA - Array
Запись: xintrea/mytetra_db_adgaver_new/master/base/1512829412q84zwjzmcb/text.html на raw.githubusercontent.com

a nalitica.jimdo.com

Массивы - Макросы в Excel

2-3 минуты


Массивы могут облегчить код в случае, когда нужно сделать одни и те же действия с несколькими объектами, например, с несколькими определенными листами книги. Допустим, из 6 листов книги нам нужно взять три и сделать с каждым из них какие-то действия, например, удалить первый столбец. Код может выглядеть следующим образом:

    Sheets(“Лист1”).Activate

    Columns(1).Delete

    Sheets(“Лист2”).Activate

    Columns(1).Delete

    Sheets(“Лист3”).Activate

    Columns(1).Delete

А может выглядеть так:

    arr=Array(“Лист1”, “Лист2”, “Лист3”)

    For Each ar in arr

                Sheets(ar).Activate

                Columns(1).Delete

    Next

Второй вариант кода сильно короче, особенно если нужно сделать не одно действие с каждым листом, а несколько.

Массивы используются, например, для задания списка получателей письма (см. интеграция с Lotus) или для задания нужного списка выбранных значений в OLAP-кубе или в сводной таблице (см. OLAP).

Задать значения, которые принимают элементы массива, можно, например, так:

     arr=Array(“Лист1”, “Лист2”, “Лист3”)

или через функцию split, которая разделяет строку на элементы:

    arr=Split("Лист1, Лист2, Лист3")

или через непосредственное задание значения каждому элементу:

    arr(0)="Лист1"

    arr(1)="Лист2"

    arr(2)="Лист3"

Не забывайте определять массив

    Dim arr() As String

И переопределять его размер, если нужно

    ReDim arr(10)

Чтобы при переопределнии массива не потерялись уже записанные в него элементы, нужно написать Preserve:

    ReDim Preserve arr(10)

Для работы с простыми макросами обычно можно обойтись и без массивов, но для некоторых сложных функций Excel они необходимы. К тому же при правильном использовании они могут сильно уменьшить код.


Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования