2015-03-04 3 views
0

Я пытаюсь сделать, если функция для каждой ячейки в одной строке использует цикл с функцией. Для того, чтобы лучше объяснить, вот что я хочу сделать:Loop single row для получения результата на основе if function

 A  b  C  D  E 
1 al  sl  al  HD  al 

2 

Я выше преуспевания клеток, в которых я хочу сказать, в моем коде в ячейке A2

Dim cng As Range 
Dim rng As Range 

Set rng = Range("A1:E1") 

    For Each cng In rng 
    If Cells(1, 1) = "al" Then 
     Cells(2,1) = 8 
     Else 
     Cells(2, 1) = 0 
     End If 
     Next cng 
end sub 

Здесь я хочу код для делают то же самое для B2, C2, D2 и E2 также. Заранее благодарю вас за помощь

ответ

1

Вам нужно будет сделать столбец переменной.
Если у вас есть вопросы, вы можете использовать Выберите случай вместо Если.

Dim cng As Range Dim rng As Range 

Set rng = Range("A1:E1") 

For Each cng In rng 
If Cells(1, rng.Column) = "al" 
Then Cells(2,rng.Column) = 8 Else Cells(2, rng.Column) = 0 
End If 
Next cng 
End Sub 

UPDATE:
Перепутались CNG-RNG различие.

Sub ert() 
Dim cng As Range, rng As Range 
Set rng = Range("A1:E1") 
For Each cng In rng 
    If Cells(1, cng.Column) = "al" Then 
     Cells(2, cng.Column) = 8 
    Else 
     Cells(2, cng.Column) = 0 
    End If 
Next 
End Sub 
+0

тот же самый вопрос произошел, результат первой ячейки пришел, но не переместился в другие ячейки в том же диапазоне. он читается только из первого диапазона A1 и останавливается, когда в других ячейках есть другие «al». –

+0

Ответ обновлен, работает в тестовой книге. – user3819867

+1

Я очень ценю это. вы даете то, что я хочу делать. с наилучшими пожеланиями и надеюсь, что вы все самое лучшее, мой друг –