VBA创builddynamic命名范围

我正在尝试创build名称范围的单元格在每个范围左上angular命名。 这显示了我的意思: 在这里输入图像说明

在这里,我想要有4个命名范围(名字A,名字B,名字C,名字D),所以我可以引用它们。 有没有一种方法可以让excel查找列B中以“Names”开头的任何单元格,并在它碰到以“Names”开头的下一个单元格时切断范围? 我很抱歉,如果这是不可能的,我还是新来的excel,不知道这是否可行。 任何帮助表示赞赏!

这是一个快速抛出的脚本提供如何处理这个想法。 绝不是漂亮,但确实显示了步骤。 这可能要复杂得多,也就是说,要处理所有单元格,而不是在名称的第一个实例之后开始(请参阅范围(“B3”)的开始和范围(“B4”)以启动单元的循环)

Sub DefineRanges() Dim rngStart As Range Set rngStart = Range("B3") Dim NamedRangeCount As Integer NamedRangeCount = 0 Dim NameRangeName As String Dim LastRow As Integer For Each cell In Range("B4:B18") If LCase(Left(cell.Value, 5)) = "names" Then NameRangeName = "Name_" & NamedRangeCount ActiveWorkbook.Names.Add Name:=NameRangeName, RefersToLocal:=Range(rngStart.Address & ":D" & cell.Row - 1) Set rngStart = Range("B" & cell.Row) NamedRangeCount = NamedRangeCount + 1 End If LastRow = cell.Row Next NameRangeName = "Name_" & NamedRangeCount ActiveWorkbook.Names.Add Name:=NameRangeName, RefersToLocal:=Range(rngStart.Address & ":D" & LastRow) End Sub