Excel VBA для l oop: взять значения из списка и выполнить по строкам - PullRequest
0 голосов
/ 04 августа 2020

У меня есть макрос Excel, как показано ниже

sub macro1()
Range("A1").Select #A1 cell will be selected and analysis done on that 
Selection.Copy
do Action 1 on Ai cell where i is from 1 to 4
end sub

sub macro2()
do Action 2 on Ai cell where i is from 1 to 4
end sub

sub macro3()
do Action 3 on Ai cell where i is from 1 to 4
end sub

Я хочу, чтобы все действия 1, 2 и 3 выполнялись последовательно от A1 до A4. Сначала выполните все шаги для A1, затем выполните все шаги для A2, затем выполните все шаги для A3 и, наконец, сделайте все для A4.

Я хочу сделать что-то вроде Ai Sub macro1 () Dim i As Integer For i = Диапазон от 1 до 4 ("Ai"). Выберите # этот синтаксис неверен, но как сделать диапазон Ai, чтобы он занимал A1, выполнял все 3 действия, затем A2 и так далее до выделения ячейки A4.Copy Next i Выполните действие 1 в ячейке Ai, где i от 1 до 4 End Sub

Sub macro2()
Do Action 2 on Ai cell where i is from 1 to 4
End Sub

Sub macro3()
Do Action 3 on Ai cell where i is from 1 to 4
End Sub

Несмотря на наличие для l oop, мой макрос работает только для ячейки A1, он не запускается для A2, затем A3 затем A4. Подскажите пожалуйста, что могло быть не так

1 Ответ

1 голос
/ 04 августа 2020

Трудно узнать без дополнительной информации, но может быть что-то вроде:

Sub macro2()
 Dim myRng As Range, myCell As Range
 
 Set myRng = Range("A1:A4")
 For Each myCell In myRng
    Action1 myCell
    Action2 myCell
    Action3 myCell
Next myCell
End Sub

Sub Action1(rg As Range)
 'do Action 1
End Sub

Sub Action2(rg As Range)
 ' do Action 2
End Sub

Sub Action3(rg As Range)
 ' do Action 3
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...