整个参考范围的单元格“地址”功能

整个参考范围的单元格“地址”功能

该函数引用当前工作表的OFFSET($A$1:$Z$25,2,3,4,5)范围。$D$3:$H$6

如果我将“address”作为第一个参数传递给该CELL函数,并将上述OFFSET函数作为第二个参数,则我只能获得范围内第一个单元格的地址。换句话说,

=CELL("address",  OFFSET($A$1:$Z$25,2,3,4,5))

产生的值为$D$3

有没有办法编写一个函数来返回某个单元格区域的完整引用? 例如:

=RANGE("address",  OFFSET($A$1:$Z$25,2,3,4,5))

这将产生一个值$D$3:$H$6

编辑:使用一些 VBA 即可轻松完成此操作。我希望避免这种情况,这样我就不必将其保存为启用宏的 .xlsm 文件。这是我尝试仅使用工作表函数实现的 VBA 函数:

Function ShowAddress(CellRange As Range) As String
    ShowAddress = CellRange.Address
End Function

注意:我想要这个的动机是为了帮助调试复杂动态命名范围的创建。我知道我可以将公式复制并粘贴到 Goto 框中,但这会给开发周期增加相当多的工作量。

答案1

Cell() 仅返回第一的多单元格引用中的单元格。请参阅支持文章

如果要构建多单元格引用,可以使用 Index() 表示第一个范围,使用另一个 Index 表示范围中的最后一个单元格。将两个 Index 函数与 : 运算符组合,结果将是一个范围。请注意,此类公式可用于需要范围的参数中,例如 Sum(),或用于名称管理器中的命名公式,但不能单独用于工作表单元格中,因为它返回一个范围。

=index(sheet1!$A$1:$Z$25,3,4):Index(Sheet1!$A$1:$Z$25,6,8)

在此处输入图片描述

相关内容