Написание текстового сообщения (с условиями) - VBA
Формулировка задачи:
Подскажите пожалуйста, как можно написать текстовое сообщение в экселе по условию?
например, есть таблица
как написать текст по условию максимального значения последнего месяца, т.е. код должен определить максимальное значение по показателю 6 в последнем месяце и написать например такой текст в пустой ячейке где нибудь снизу "Максимальное значение по показателю 6 наблюдается у чел1 - 6 ведер в май.16 " - т.е. 4 ячейки по условию должны попасть в текст - и пожалуйста, расшифруйте свой код, чтоб мне легче разобраться было - где условия и т.п.
ФИО | наименование | янв.16 | фев.16 | мар.16 | апр.16 | май.16 |
чел1 | показатель1 | 1 | 2 | 3 | 2 | 1 |
чел1 | показатель2 | 3 | 3 | 3 | 3 | 3 |
чел1 | показатель3 | 3 | 3 | 3 | 3 | 3 |
чел1 | показатель4 | 3 | 3 | 3 | 3 | 3 |
чел1 | показатель5 | 3 | 3 | 3 | 3 | 3 |
чел1 | показатель6 | 5 | 4 | 3 | 5 | 6 |
чел1 | показатель7 | 2 | 1 | 1 | 1 | 1 |
чел2 | показатель1 | 3 | 3 | 3 | 3 | 3 |
чел2 | показатель2 | 3 | 3 | 3 | 3 | 3 |
чел2 | показатель6 | 3 | 3 | 3 | 3 | 3 |
Решение задачи: «Написание текстового сообщения (с условиями)»
textual
Листинг программы
- Sub Макрос1()
- '
- ' Макрос1 Макрос
- ' Макрос записан 16.09.2016 (User)
- '
- firstRow = 6 'Первая строка
- lastRow = 15 'Последняя строка
- lastMonthColumn = 6 'Колонка последнего месяца
- pocazatelColumn = 2 'Колонка имен показателей
- pocazatelNumber = 6 'Номер показателя
- chelColumn = 1 'Колонка человеков
- maxValRow = 0 'строка, содержащая максимальное значение, будем ее искать
- maxValue = 0 'максимальное значение
- For r = firstRow To lastRow 'Цикл от первой до последней строки
- 'В текущей строке r в колонке показателя проверяем что это нужный нам показатель
- If Лист1.Cells(r, pocazatelColumn).Value = "показатель" + Trim(Str(pocazatelNumber)) Then
- currValue = Лист1.Cells(r, lastMonthColumn).Value 'Получаем значение из колонки последней месяца
- If currValue > maxValue Then 'Сравниваем значение с максимальным
- maxValue = currValue 'если больше то запоминаем максимальное значение
- maxValRow = r 'и запоминаем номер строки, где это значение найдено
- End If
- End If
- Next
- chel = Лист1.Cells(maxValRow, chelColumn).Value 'считываем человека из колонки людей в максимальной строке
- veder = maxValue 'присваиваем переменной veder количество ведер из MaxValue
- monthTitle = Лист1.Cells(firstRow - 1, lastMonthColumn).Value 'Считываем значение месяца из
- 'строки предшествующей первой и колонки последнего месяца
- 'осталось лишь сплюсовать это все в активную ячейку
- ActiveCell.Value = "Наибольшее значение по показателю " + _
- Trim(Str(pocazatelNumber)) + " наблюдается у " + chel + _
- " -" + Str(veder) + " ведер " + " в " + Format(monthTitle, "mmm yyyy")
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д