Как преобразовать мой именованный диапазон VBA в циклический код - PullRequest
0 голосов
/ 09 ноября 2019

В приведенном ниже примере кода VBA я вручную создал 3 именованных диапазона, в которых значение ReportID_0XX постепенно увеличивается с ... 01 до ... 03, а также увеличил ссылку на ячейку ComparisonReport с $ A $ 6 до $ A $ 8

Это было хорошо в меньшей области, но теперь мне нужно сделать это для 60 экземпляров, эффективно продолжая процесс еще 57 раз, чтобы создать именованные диапазоны от «ReportID_001» до «ReportID_060» (добавьте соответствующие ведущие нули) иссылка на ячейку должна начинаться с $ 6 и заканчиваться на $ 65.

Я очень плохо знаком с диапазонами именования с помощью VBA.

'' '' '' '' ''«» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «» «»'' '' ''

ActiveWorkbook.Names.Add Name:="ReportID_001", RefersTo:= _
"='ComparisonReport'!$A$6"
ActiveWorkbook.Names("ReportID_001").Comment = ""

'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''''

ActiveWorkbook.Names.Add Name:="ReportID_002", RefersTo:= _
"='ComparisonReport'!$A$7"
ActiveWorkbook.Names("ReportID_002").Comment = ""

'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '*

ActiveWorkbook.Names.Add Name:="ReportID_003", RefersTo:= _
"='ComparisonReport'!$A$8"
ActiveWorkbook.Names("ReportID_003").Comment = ""

1 Ответ

0 голосов
/ 09 ноября 2019
Sub Test()
   Dim xBk As Workbook, xRng As Range, xCel As Range, xCtr As Long, xRep As String

   Set xBk = ActiveWorkbook
   Set xRng = Range("A6:A66")  ' or whatever range you want
   For Each xCel In xRng.Cells
      xCtr = xCtr + 1
      xRep = "ReportID_" & Format(xCtr, "000")   ' Make it "0000" if > 99 Reports
      xBk.Names.Add Name:=xRep, RefersTo:="='ComparisonReport'!$A$" & (xCtr + 5)
      xBk.Names(xRep).Comment = ""
   Next xCel
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...