首页 文章

在具有设定列数的两个命名单元格之间创建动态范围

提问于
浏览
-2

我需要在两个命名单元格之间创建一个动态范围(单元格和相应的行不应包含在选择中) . 列数总是相同的(4),只有行数在变化 . 这是第一步 . 第二个是将几个这些范围放入另一个excel列表中的编号列表中,但这是我希望自己能够找到的东西 . 非常感谢你 .

2 回答

  • 0

    我可能会尝试这样的事情:

    Sub RangeBetween()
    Dim rng1 As Range, rng2 As Range
    Dim betRange As Range
    
    Set rng1 = Range("A1")   'sample data
    Set rng2 = Range("A20")
    
    Set betRange = Range(rng1.Offset(1, 0).Address & ":" & rng2.Offset(-1, 3).Address)
    
    End Sub
    

    这当然是假设您的命名单元格位于同一列 . 如果您的命名单元格默认情况下始终展开4列,请将偏移量(-1,3)替换为偏移量(-1,0) .

  • 0

    此代码定义名为“NewNamedRange”的命名范围 . 该代码假设(并要求)您的包围单元已经命名为范围,名称为“UpperLeft”和“LowerRight” . 偏移公式从命名范围中排除包围单元格 . 因此,如果“UpperLeft”是单元格D2,“LowerRight”是单元格G22,则“NewNamedRange”将是“D3:G21”的范围 . 由于命名范围定义是公式,因此当包围单元格定义更改时,NewNamedRange将动态更改 . 希望这可以帮助 .

    Sub NamedRange()
    
    ActiveWorkbook.Names.Add _
    Name:="NewNamedRange", _
    RefersTo:="=OFFSET(UpperLeft,1,0):OFFSET(LowerRight,-1,0)"
    End Sub
    

相关问题