如何将我的VBA命名范围转换为循环代码

问题描述 投票:0回答:1

[在下面的VBA代码示例中,我手动创建了3个命名范围,其中ReportID_0XX从... 01逐渐增加到... 03,并将“ CompareReportReport”单元格引用从$ A $ 6增加到$ A $ 8

这在较小的范围内很好,但是现在我需要对60个实例执行此操作,以有效地继续执行过程57次以上,以创建“ ReportID_001”到“ ReportID_060”的命名范围(添加保留适用的前导零)并具有单元格参考开始于$ A $ 6,最后达到$ A $ 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 = ""
excel vba for-loop named-ranges
1个回答
0
投票
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
© www.soinside.com 2019 - 2024. All rights reserved.