#excel #vba
#excel #vba
Вопрос:
Я хочу создать макрос для перебора столбца и изменения значения в отдельном столбце, если параметр встречается в определенной ячейке из первого столбца. Вот что у меня есть:
If Range(AB) <> 0 Then
AD = "Basketball"
Else
AD = "Football"
End If
Как мне установить диапазон для моих ячеек как общий при выполнении итерации по всему столбцу?
Комментарии:
1. Взгляните на
For
цикл, который должен вам помочь.
Ответ №1:
Обратите внимание, что это можно сделать и с помощью формул, и в VBA нет необходимости. В большинстве случаев формулы выполняются быстрее, чем при использовании VBA, поскольку VBA не поддерживает многопоточность.
Формула
Поэтому просто добавьте эту формулу в столбец AD:
=If(AB:AB<>0, "Basketball", "Football")
VBA
Общая структура будет использовать For
цикл:
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1") 'reference your sheet
Dim LastRow As Long 'find last used row in column A. Adjust column to your needs
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
Dim iRow As Long
For iRow = 1 To LastRow 'loop from first to last row and do the following in each row
If ws.Cells(iRow, "AB").Value <> 0 Then
ws.Cells(iRow, "AD").Value = "Basketball"
Else
ws.Cells(iRow, "AD").Value = "Football"
End If
Next iRow