Создание макроса - VB
Формулировка задачи:
Подскажите, пожалуйста, как написать макрос по следующей задаче.
Имеется таблица для расчета точки безубыточности.
Один из столбцов - это прибыльность по каждому месяцу.
Нужно, чтоб макрос (при нажатии на кнопку, к которой он привязан) смотрел этот столбец и выделял ту строку, в которой значение уже не отрицательное.
Это нужно для автоматического выделения строки с неотрицательной прибылью при изменении прочих параметров и, соответственно, при изменении точки безубыточности.
Записал макрос выделения строки :) Однако теперь не могу макросу объяснить, что нужно выделять не конкретную строку, а ту, которая удовлетворяет условию "Прибыль - не отрицательная" :)
Не силен в вижуал бейсике, давно его учил :)
Спасибо.
Имеется таблица для расчета точки безубыточности.
Один из столбцов - это прибыльность по каждому месяцу.
Нужно, чтоб макрос (при нажатии на кнопку, к которой он привязан) смотрел этот столбец и выделял ту строку, в которой значение уже не отрицательное.
Это нужно для автоматического выделения строки с неотрицательной прибылью при изменении прочих параметров и, соответственно, при изменении точки безубыточности.
Записал макрос выделения строки :) Однако теперь не могу макросу объяснить, что нужно выделять не конкретную строку, а ту, которая удовлетворяет условию "Прибыль - не отрицательная" :)
Не силен в вижуал бейсике, давно его учил :)
Спасибо.
Решение задачи: «Создание макроса»
textual
Листинг программы
<font color="blue">Public</font> prevSel <font color="blue">Sub</font> MakeSel(rng <font color="blue">As</font> Range, col <font color="blue">As</font> <font color="blue">Integer</font>) <font color="#00AA00">' rng - диапазон таблицы</font> <font color="#00AA00">' col - номер колонки В ТАБЛИЦЕ</font> r = <font color="darkblue"><b>0</b></font> <font color="blue">For</font> <font color="blue">Each</font> c <font color="blue">In</font> rng.Columns(col).Cells <font color="blue">If</font> c.Value >= <font color="darkblue"><b>0</b></font> <font color="blue">Then</font> r = c.Row - rng.Row + <font color="darkblue"><b>1</b></font>: <font color="blue">Exit</font> <font color="blue">For</font> <font color="blue">Next</font> <font color="blue">If</font> <font color="blue">Not</font> IsEmpty(prevSel) <font color="blue">Then</font> rng.Rows(prevSel).Interior.Color = vbWhite <font color="blue">If</font> r > <font color="darkblue"><b>0</b></font> <font color="blue">And</font> r <= rng.Rows.Count <font color="blue">Then</font> rng.Rows(r).Interior.Color = vbGreen: prevSel = r <font color="blue">End</font> <font color="blue">Sub</font> <font color="blue">Private</font> <font color="blue">Sub</font> CommandButton1_Click() MakeSel Range(<font color="teal">"C4:F15"</font>), <font color="darkblue"><b>4</b></font> <font color="blue">End</font> <font color="blue">Sub</font>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д