Написание текстового сообщения (с условиями) - VBA

Узнай цену своей работы

Формулировка задачи:

Подскажите пожалуйста, как можно написать текстовое сообщение в экселе по условию? например, есть таблица
ФИО наименование янв.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
как написать текст по условию максимального значения последнего месяца, т.е. код должен определить максимальное значение по показателю 6 в последнем месяце и написать например такой текст в пустой ячейке где нибудь снизу "Максимальное значение по показателю 6 наблюдается у чел1 - 6 ведер в май.16 " - т.е. 4 ячейки по условию должны попасть в текст - и пожалуйста, расшифруйте свой код, чтоб мне легче разобраться было - где условия и т.п.

Решение задачи: «Написание текстового сообщения (с условиями)»

textual
Листинг программы
  1. Sub Макрос1()
  2. '
  3. ' Макрос1 Макрос
  4. ' Макрос записан 16.09.2016 (User)
  5. '
  6.  
  7.     firstRow = 6 'Первая строка
  8.    lastRow = 15 'Последняя строка
  9.    
  10.     lastMonthColumn = 6 'Колонка последнего месяца
  11.    pocazatelColumn = 2 'Колонка имен показателей
  12.    pocazatelNumber = 6 'Номер показателя
  13.    chelColumn = 1 'Колонка человеков
  14.    
  15.     maxValRow = 0 'строка, содержащая максимальное значение, будем ее искать
  16.    maxValue = 0 'максимальное значение
  17.    
  18.     For r = firstRow To lastRow 'Цикл от первой до последней строки
  19.        
  20.         'В текущей строке r в колонке показателя проверяем что это нужный нам показатель
  21.        If Лист1.Cells(r, pocazatelColumn).Value = "показатель" + Trim(Str(pocazatelNumber)) Then
  22.            
  23.             currValue = Лист1.Cells(r, lastMonthColumn).Value 'Получаем значение из колонки последней месяца
  24.            
  25.             If currValue > maxValue Then 'Сравниваем значение с максимальным
  26.                
  27.                 maxValue = currValue 'если больше то запоминаем максимальное значение
  28.                maxValRow = r 'и запоминаем номер строки, где это значение найдено
  29.                
  30.             End If
  31.            
  32.         End If
  33.            
  34.     Next
  35.    
  36.     chel = Лист1.Cells(maxValRow, chelColumn).Value 'считываем человека из колонки людей в максимальной строке
  37.    veder = maxValue 'присваиваем переменной veder количество ведер из MaxValue
  38.    monthTitle = Лист1.Cells(firstRow - 1, lastMonthColumn).Value 'Считываем значение месяца из
  39.        'строки предшествующей первой и колонки последнего месяца
  40.    
  41.     'осталось лишь сплюсовать это все в активную ячейку
  42.    ActiveCell.Value = "Наибольшее значение по показателю " + _
  43.         Trim(Str(pocazatelNumber)) + " наблюдается у " + chel + _
  44.         " -" + Str(veder) + " ведер " + " в " + Format(monthTitle, "mmm yyyy")
  45.    
  46. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут