如何从一列创建具有固定大小的多个命名范围?

如何从一列创建具有固定大小的多个命名范围?

我想知道是否有办法从一列创建具有固定大小(252 个单元格)的命名范围。

B 列中有 51,156 个数字。我希望前 252 个数字(B1:B252)成为命名范围RANGE1

然后我想B253-B504成为命名范围RANGE2。等等。

有人知道方法吗?通常我只需选择范围并输入名称,但现在我必须对 25 张纸中的每张纸约 200 个范围执行此操作。

谢谢!

我可能让任务变得简单一些。现在,我在 C 列 ( C1:C202) 中输入了我希望命名范围的名称,在 D 列中输入了数组的输入,就像命名范围菜单读取它们的方式一样(D1包含=first14!L1:L252D2包含=first14!L253:L504等等)。

答案1

您可以使用 VBA 执行此操作。如果您的工作表不完全相同,则需要修改顶部的常量。它使用当前活动的工作表,因此在运行宏之前选择所需的工作表。

Option Explicit
Sub AddNamedRanges()
    Const NumberOfRanges As Long = 202      'How many ranges to create
    Const HeightOfRanges As Long = 252      'How tall to make each range
    Const RefersToColumn As Integer = "B"   'Which column to reference
    Dim r As Long
    For r = 1 To NumberOfRanges
        ActiveWorkbook.Names.Add "RANGE" & r, ActiveSheet.Range(RefersToColumn & (r - 1) * HeightOfRanges + 1 & ":" & RefersToColumn & r * HeightOfRanges)
    Next
End Sub

相关内容