【问题标题】:Excel - Is there a possibility to offset an array of ranges?Excel - 是否有可能抵消一系列范围?
【发布时间】:2017-05-20 16:27:45
【问题描述】:

基本上我已经定义了

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 个范围。

但是 offset 不支持非相邻单元格,那么有没有解决这个限制的方法? :/

【问题讨论】:

    标签: excel offset named-ranges vba


    【解决方案1】:

    您可以将范围定义为Union Range(又名Multi-Area Range),而不是Array,以便轻松抵消它。

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-27
      • 1970-01-01
      • 1970-01-01
      • 2016-10-11
      • 1970-01-01
      • 2012-05-07
      • 2012-05-28
      • 1970-01-01
      相关资源
      最近更新 更多