如何在Excel VBA中使用循环创建命名范围?

如何在Excel VBA中使用循环创建命名范围?,excel,vba,loops,named-ranges,Excel,Vba,Loops,Named Ranges,我想在我的Excel工作表中创建命名范围,稍后应将其复制到另一个工作表中。 我创建了一个代码,将范围命名如下: Sub Sample1() Dim RangeName As String RangeName1 = Worksheets("DB_Elements").Range("B3") ThisWorkbook.Names.Add Name:=RangeName1, RefersTo:=Worksheets("DB_Elem

我想在我的Excel工作表中创建命名范围,稍后应将其复制到另一个工作表中。
我创建了一个代码,将范围命名如下:

Sub Sample1()

Dim RangeName As String

    RangeName1 = Worksheets("DB_Elements").Range("B3")
    ThisWorkbook.Names.Add Name:=RangeName1, RefersTo:=Worksheets("DB_Elements").Range("B3:V14")
    
    RangeName2 = Worksheets("DB_Elements").Range("B17")
    ThisWorkbook.Names.Add Name:=RangeName2, RefersTo:=Worksheets("DB_Elements").Range("B17:V28")
然而,这需要再重复85次。因此,我需要在VBA中创建一个循环,该循环将根据“B”单元格值创建一个新的命名范围,该值始终向下偏移14行。命名范围始终由12行21列组成。

尝试以下操作:

Sub Sample1()
  Dim i As Long
  Dim j As Long
  With Worksheets("DB_Elements")
    For i = 1 To 85
      j = (i - 1) * 14 + 3
      ThisWorkbook.Names.Add Name:=.Range("B" & j), RefersTo:=.Range("B" & j & ":V" & (j + 11))
    Next
  End With
End Sub