我想知道是否有办法从一列创建具有固定大小(252 个单元格)的命名范围。
B 列中有 51,156 个数字。我希望前 252 个数字(B1:B252
)成为命名范围RANGE1
。
然后我想B253-B504
成为命名范围RANGE2
。等等。
有人知道方法吗?通常我只需选择范围并输入名称,但现在我必须对 25 张纸中的每张纸约 200 个范围执行此操作。
谢谢!
我可能让任务变得简单一些。现在,我在 C 列 ( C1:C202
) 中输入了我希望命名范围的名称,在 D 列中输入了数组的输入,就像命名范围菜单读取它们的方式一样(D1
包含=first14!L1:L252
、D2
包含=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