VBA Excel области - PullRequest
       2

VBA Excel области

0 голосов
/ 19 февраля 2019

Как сохранить несколько областей в массиве (тип областей)?

Dim SelAreas() As Areas
NumAreas = Selection.Areas.Count
ReDim SelAreas(1 To NumAreas)
    For i = 1 To NumAreas
        SelAreas(i) = Selection.Areas(i)
    Next i

приведенный выше код ошибочно указывает на недопустимое использование свойства.

Я не хочу хранить в диапазонемассив.

Спасибо за помощь.

С уважением, Балу.

1 Ответ

0 голосов
/ 19 февраля 2019

Помните, что коллекция областей - это набор из Range s.

Вам действительно нужно создать массив объектов Range, таких как:

Sub dural()
    Dim Area As Range, ArrayOfAreas() As Range, i As Long
    ReDim ArrayOfAreas(1 To ActiveSheet.UsedRange.Areas.Count)

    i = 1
    For Each Area In ActiveSheet.UsedRange.Areas
        Set ArrayOfAreas(i) = Area
        i = i + 1
    Next Area
End Sub

Обратите внимание, что мы используем Setпотому что мы имеем дело с диапазонами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...