Здравствуйте! Всех читающих с праздниками- прошедшими и наступающими! Возможно мой вопрос покажется несколько странным... Дело в следующем. Есть Макрос (пример не привожу т.к. считаю вопрос не конкретной задачей), который по одному условию циклом перебирая данные выводит на Лист нужные .Одна из строк с таким условием[vba]
Код
If .Cells(i, 1).Value = Range("B1").Value Then....
[/vba] Возможно ли добавлять еще одно условие в эту же строку (или как-то иначе) не переписывая как бы остальной текст что-то типа[vba]
Код
If Range("B2").Value = "Да" And .Cells(i, 1).Value = Range("B1").Value And .Cells(i, 3).Value <> "ноябрь" Then...
[/vba] То есть выбирая в определенной ячейке значение "ДА" строка макроса имела бы два условия, а если нет то одно? Что бы не повторять весь текст Макроса два раза Спасибо!
Здравствуйте! Всех читающих с праздниками- прошедшими и наступающими! Возможно мой вопрос покажется несколько странным... Дело в следующем. Есть Макрос (пример не привожу т.к. считаю вопрос не конкретной задачей), который по одному условию циклом перебирая данные выводит на Лист нужные .Одна из строк с таким условием[vba]
Код
If .Cells(i, 1).Value = Range("B1").Value Then....
[/vba] Возможно ли добавлять еще одно условие в эту же строку (или как-то иначе) не переписывая как бы остальной текст что-то типа[vba]
Код
If Range("B2").Value = "Да" And .Cells(i, 1).Value = Range("B1").Value And .Cells(i, 3).Value <> "ноябрь" Then...
[/vba] То есть выбирая в определенной ячейке значение "ДА" строка макроса имела бы два условия, а если нет то одно? Что бы не повторять весь текст Макроса два раза Спасибо!pechkin
If Range("B2").Value = "Да" And .Cells(i, 1).Value = Range("B1").Value And .Cells(i, 3).Value <> "ноябрь" Then выполнить действие 1 Elseif .Cells(i, 1).Value = Range("B1").Value Then выполнить действие 2 Else выполнить действие 3 End If
[/vba]
Ну можно как то так:
[vba]
Код
If Range("B2").Value = "Да" And .Cells(i, 1).Value = Range("B1").Value And .Cells(i, 3).Value <> "ноябрь" Then выполнить действие 1 Elseif .Cells(i, 1).Value = Range("B1").Value Then выполнить действие 2 Else выполнить действие 3 End If
Спасибо за ответ! К сожалению, не совсем то, о чем я спрашивал. Дело в том, что везде после строк условий нужно будет вставлять совершенно одинаковые строки Макроса, т.е. как бы (в Вашем примере "выполнить действие1, выполнить действие2, выполнить действие3"- одно и тоже ).Вернее из одних и тех же данных выбираются то ли по одному условию или по двум и далее распределяются на Листе (почему и не хочется "грузить" Макрос одним и тем же текстом (он достаточно большой) Спасибо!
Спасибо за ответ! К сожалению, не совсем то, о чем я спрашивал. Дело в том, что везде после строк условий нужно будет вставлять совершенно одинаковые строки Макроса, т.е. как бы (в Вашем примере "выполнить действие1, выполнить действие2, выполнить действие3"- одно и тоже ).Вернее из одних и тех же данных выбираются то ли по одному условию или по двум и далее распределяются на Листе (почему и не хочется "грузить" Макрос одним и тем же текстом (он достаточно большой) Спасибо!pechkin
Sub Мяу() i = 10 If Range("B2").Value = "Да" And Cells(i, 1).Value = Range("B1").Value And Cells(i, 3).Value = "ноябрь" Then a = "кошка" GoSub cat ElseIf Range("B2").Value = "Да" And Cells(i, 1).Value = Range("B1").Value And Cells(i, 3).Value = "март" Then a = "кот" GoSub cat End If Exit Sub cat: MsgBox a Return End Sub
[/vba]
[vba]
Код
Sub Мяу() i = 10 If Range("B2").Value = "Да" And Cells(i, 1).Value = Range("B1").Value And Cells(i, 3).Value = "ноябрь" Then a = "кошка" GoSub cat ElseIf Range("B2").Value = "Да" And Cells(i, 1).Value = Range("B1").Value And Cells(i, 3).Value = "март" Then a = "кот" GoSub cat End If Exit Sub cat: MsgBox a Return End Sub