Есть Excel-файлик, который при каждом его открытии автоматически обновляет котировки акций. При этом изменяется значение в столбце «Цена» на листе «Мой портфель». Нужно сделать так, чтобы в столбце MAX фиксировалось максимальное значение. Т.е. сперва обновляется котировка в столбце «цена», дальше идет проверка: указанная цена больше уже записанной в столбце «Max» значения или нет. Если нет, то остается старое значение. Если больше, то переписывается на него.
На примере:
Сбербанк-п. Текущая котировка 204,1. Максимальная, указанная в столбце MAX – 205 Если завтра текущая котировка обновится и станет 206, в столбце MAX должно появиться 206. Если послезавтра сбербанк станет 203, то значение в столбце MAX должно по-прежнему оставаться 206.
Кто может помочь, прошу сделать изменения в файле и выслать в прикреплении.
Заранее спасибо за ваш труд!
Добрый день, коллеги. Прошу помощи.
Есть Excel-файлик, который при каждом его открытии автоматически обновляет котировки акций. При этом изменяется значение в столбце «Цена» на листе «Мой портфель». Нужно сделать так, чтобы в столбце MAX фиксировалось максимальное значение. Т.е. сперва обновляется котировка в столбце «цена», дальше идет проверка: указанная цена больше уже записанной в столбце «Max» значения или нет. Если нет, то остается старое значение. Если больше, то переписывается на него.
На примере:
Сбербанк-п. Текущая котировка 204,1. Максимальная, указанная в столбце MAX – 205 Если завтра текущая котировка обновится и станет 206, в столбце MAX должно появиться 206. Если послезавтра сбербанк станет 203, то значение в столбце MAX должно по-прежнему оставаться 206.
Кто может помочь, прошу сделать изменения в файле и выслать в прикреплении.
Private Sub Worksheet_Calculate() Dim MyCell As Range Application.EnableEvents = False For Each MyCell In UsedRange.Offset(1, 5).Resize(UsedRange.Rows.Count - 1, 1) If MyCell < MyCell.Offset(, -1) Then MyCell = MyCell.Offset(, -1) Next Application.EnableEvents = True End Sub
[/vba]
в модуль листа [vba]
Код
Private Sub Worksheet_Calculate() Dim MyCell As Range Application.EnableEvents = False For Each MyCell In UsedRange.Offset(1, 5).Resize(UsedRange.Rows.Count - 1, 1) If MyCell < MyCell.Offset(, -1) Then MyCell = MyCell.Offset(, -1) Next Application.EnableEvents = True End Sub