Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何引用非连续命名范围内的特定单元格?_Excel_Vba_Named Ranges - Fatal编程技术网

Excel 如何引用非连续命名范围内的特定单元格?

Excel 如何引用非连续命名范围内的特定单元格?,excel,vba,named-ranges,Excel,Vba,Named Ranges,我正在尝试创建一个新的命名区域,该区域引用非连续命名区域中的特定单元格。请参见示例图片: 命名_范围由两个范围组成,K4:K7和L8:L10。 我找不到引用特定单元格的方法,例如单元格4(K7)和单元格6(L9)。 我曾尝试使用index,=index(名为_range,4),但它仅适用于单元格4。对于单元格6,它指的是K9而不是L9 理想的结局是这样的: ThisWorkbook.Names.Add Name:="Named_range_cell_6", RefersTo:=Index("N

我正在尝试创建一个新的命名区域,该区域引用非连续命名区域中的特定单元格。请参见示例图片:

命名_范围由两个范围组成,K4:K7和L8:L10。 我找不到引用特定单元格的方法,例如单元格4(K7)和单元格6(L9)。 我曾尝试使用index,=index(名为_range,4),但它仅适用于单元格4。对于单元格6,它指的是K9而不是L9

理想的结局是这样的:

ThisWorkbook.Names.Add Name:="Named_range_cell_6", RefersTo:=Index("Named_range", 6)
我找不到一种方法来创建一个命名范围,该范围引用已经存在的命名范围,就像在“INDEX(named_range,6)”尝试中一样。类似于范围(“命名范围”)。第(6)项的作用完全相同,指的是一行或一列中的内容。我想根据它的索引引用一个特定的单元格,不管它是连续的还是非连续的范围


有什么方法可以实现我的目标吗?

如果范围严重不相交,则需要一个循环:

Sub luxation()
    Dim i As Long, r As Range

    Union(Range("K4:K7"), Range("L8:L10")).Name = "Named_range"
    i = 1
    For Each r In Range("Named_range")
        If i = 6 Then
            r.Name = "Named_range_6"
        End If
        i = i + 1
    Next r

    MsgBox Range("Named_range_6").Address(0, 0)
End Sub

请注意,您可以使用索引的第四个参数,因为您的范围有多个区域。是的,这是正确的。我可以使用第四个参数,但不能使用任何其他参数。我正在寻找的是一个选项或功能,以使用第六个参数或任何其他在我的命名范围的第二/第三个区域。