Проход по списку и запуск кода для каждого элемента (VBA) - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть список имен и некоторый код, который я хотел бы запустить для каждого отдельного имени.Я начинаю с этого:

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

Это должно сделатьзадание, но если у кого-то есть более эффективный способ, чем копировать и вставлять каждое значение из списка в ячейку, это тоже будет очень полезно!

Спасибо.

1 Ответ

0 голосов
/ 25 сентября 2019

Это будет принимать каждое имя в диапазоне и помещать его в ячейку последовательно - вам нужно будет отредактировать, чтобы ваши имена листов и диапазоны были в

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...