首页 > 解决方案 > 遍历列表并为每个项目运行代码(VBA)

问题描述

我有一个名称列表,以及一些我想为每个名称运行的代码。我要开始的是:

Dim cell As Range
For Each cell In Worksheets("Reference").Range("b2:b237")
[rest of my code here]
Next cell

问题是,我实际上想要做的是:

步骤 1) 从单元格 A1 的下拉列表中选择一个名称

第 2 步)还有一堆其他单元格的公式引用 A1

步骤 3) 运行代码

步骤 4) 从 A1 的下拉列表中选择下一个名称,重复步骤 2 和 3,直到列表结束。

编辑:我在一个旧线程上发现了一些似乎对我正在做的事情有用的东西:

Sub Macro1()
    Sheets("Sheet2").Activate
    Range("A1").Select

Do While True
    If Selection.Value = "" Then
        Exit Do
    Else
        Selection.Copy
        Sheets("Sheet1").Activate
        Range("A1").Activate
        ActiveSheet.Paste

        [rest of my code]

        Sheets("Sheet2").Activate
        Selection.Offset(1, 0).Select

    End If
Loop
End Sub

这应该可以完成工作,但是如果有人有更有效的方法而不是将列表中的每个值复制并粘贴到单元格中,那也将非常有帮助!

谢谢你。

标签: excelvba

解决方案


这将获取一个范围内的每个名称并按顺序将其放入一个单元格中 - 您需要进行编辑以将您的工作表名称和范围放入

Sub LoopThroughNames()
dim RangeWithNames as range
'define list of names - needs editing
set RangeWithNames = Worksheets("othersheetname").Range("range with names")
dim TargetCell as range
set TargetCell = worksheets("Sheet with calcs").Range("A1") 'top sheet, cell A1 edit as needed
dim r as range
for each r in RangeWithNames
      targetcell= r  'assign name into A1
'do your stuff
next r
End Sub

推荐阅读