Excel - есть ли возможность сместить массив диапазонов?

В основном я определил

mydata = {$E$2:$H$6,$J$2:$M$6,$O$2:$S$6,$V$2:$Y$6,$AA$2:$AE$6,$AG$2:$AJ$6,$AM$2:$AP$6, $AR$2:$AV$6,$AX$2:$BA$6,$BD$2:$BG$6,$BI$2:$BM$6,$BO$2:$BR$6} 

этот массив диапазонов.

Есть ли способ смещения (mydata,x,y)?

Контекст: причина, по которой я спрашиваю, состоит в том, что я должен определить защищенный диапазон в обзоре -> разрешить пользователям редактировать раздел диапазонов. И для некоторых файлов они даже 80 диапазонов для определения. Поэтому я подумал, что просто определю 1-е вручную, а затем просто сместлю остальные 50 - 80 диапазонов.

Но смещение не поддерживает несмежные ячейки, так есть ли обходное ограничение?:/

1 ответ

Вместо ArrayВы можете определить свой диапазон как Union Range (ака Multi-Area Range) так что вы можете легко компенсировать это.

Sub Test
    Dim multiAreaRange As Range
    Set multiAreaRange = Range("$E$2:$H$6,$J$2:$M$6,$O$2:$S$6,$V$2:$Y$6,$AA$2:$AE$6,$AG$2:$AJ$6,$AM$2:$AP$6, $AR$2:$AV$6,$AX$2:$BA$6,$BD$2:$BG$6,$BI$2:$BM$6,$BO$2:$BR$6")

    Debug.Print multiAreaRange.Offset(3, 4).Address
End Sub

Выход:

$ I $ 5: $ L $ 9, $ N 5:$Q$9,$S$5:$W$9,$Z$5:$AC$9,$AE$5:$ АИ $ 9, $ АК $5:$AN$9,$AQ$5:$AT$9,$AV$5:$AZ$9,$BB$5:$BE$9,$BH$5:$BK$9,$ БМ $5:$BQ$9,$ Б. $5:$BV$9

Другие вопросы по тегам