Форум по VBA и MS Office

VBA, Excel => VBA, макросы в Excel => Тема начата: gtz от 16 января 2018, 17:14

Название: Excel VBA Макросы: Условие - Как проверить значение в определенной ячейке в строке
Отправлено: gtz от 16 января 2018, 17:14
Имеется выражение
    For Each row In ActiveSheet.Rows("3:" & R)
где R переменная = R = Cells(Rows.Count, "A").End(xlUp).row

Как добавить проверку (условие) содержимого ячейки в строке для того, чтобы происходило выполнение макроса.
Т.е. по простому:

For Each row In ActiveSheet.Rows("3:" & R)
If 3-я ячейка содержит = "Дерево" then
           команда
next row
Название: Re: Excel VBA Макросы: Условие - Как проверить значение в определенной ячейке в строке
Отправлено: Администратор от 16 января 2018, 17:42
If row.cells(1,3).value = "Дерево" then
    команда
next row

Или так можно, чтобы код был проще:
If row.cells(3).value = "Дерево" then
    команда
next row

Если в скобках Cells находится одно число, то обращение идёт не по номеру строки и столбца, а по порядковому номеру ячейки во фрагменте.
Название: Re: Excel VBA Макросы: Условие - Как проверить значение в определенной ячейке в строке
Отправлено: Администратор от 16 января 2018, 17:47
Вместо "R" лучше используйте "lr", что означает "last row - последняя строка".
А переменная "R" означает "row - строка".
Название: Re: Excel VBA Макросы: Условие - Как проверить значение в определенной ячейке в строке
Отправлено: gtz от 16 января 2018, 18:18
Все получилось, спасибо!