excel - 如何将我的 VBA 命名范围转换为循环代码
问题描述
在下面的 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 = ""
解决方案
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
推荐阅读
- javascript - 是什么导致我的 jQuery 调用出现这种递归?
- python - 如何使这个循环每次迭代增加 1.8?
- raspberry-pi - 节点红树莓派多输入
- javascript - Chrome 中的嵌套 Web Worker
- ruby-on-rails - 为什么没有从视图中调用我的控制器
- python - Python根据条件创建ID组合
- html - 使用 FontAwesome 图标居中文本
- firebase - 如何在 firebase localhost:5000 中切换项目
- javascript - 结合两个 JSON 对象 javaScript
- pagespeed - 配额限制 Page Speed V5