Excel - 是否有可能偏移范围数组?

时间:2017-01-05 23:49:03

标签: excel excel-vba offset named-ranges vba

基本上我定义了

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个范围。所以我想我会手动定义第一个,然后只是偏移剩下的50-80个范围。

但是偏移不支持非相邻的单元格,所以这种限制是否有解决方法? :/

1 个答案:

答案 0 :(得分:3)

您可以将范围定义为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:$ AI $ 9 $ AK $ 5:$ AN $ 9 ,$ AQ $ 5:$ AT $ 9 $ AV $ 5:$ AZ $ 9 $ BB $ 5:$ BE $ 9 $ BH $ 5:$ BK $ 9 $ BM $ 5:$ BQ $ 9 $ BS $ 5:$ BV $ 9