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

How to create Named Ranges using a loop in Excel VBA?

我想在我的 Excel sheet 中创建命名范围,稍后应该将其复制到另一个作品sheet。
我创建了一个代码来命名这样的范围:

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 中创建一个循环,每次都会根据始终向下偏移 14 行的“B”单元格值创建一个新的命名范围。命名范围始终由 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