У меня есть столбец с 3 ячейками: A1, A2 и A3. Я хочу, чтобы числовая сумма 3 ячеек оставалась постоянной при увеличении или уменьшении любой из 3 ячеек. То есть мне нужно, чтобы любое увеличение или уменьшение любой ячейки было равномерно распределено между другими 2 ячейками. Например, я начинаю с 3 + 5 + 2 = 10. Я меняю 5 на 6, так что тогда у меня автоматически получается 2,5 + 6 + 1,5 = 10. Пожалуйста, имейте в виду, что на самом деле у меня будет около 20 ячеек, которые я хочу приравнять к постоянным 100. Большое спасибо.
решение1
НаполнятьА1черезА20с ценностями, которые складываются в100:
Затем поместите следующееМакрос событияв области кода рабочего листа:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, Delta As Double
Set rng = Range("A1:A20")
If Intersect(Target, rng) Is Nothing Then Exit Sub
Delta = (100 - Range("A21").Value) / 19
Application.EnableEvents = False
For Each r In rng
If r.Address <> Target.Address Then
r.Value = r.Value + Delta
End If
Next r
Application.EnableEvents = True
End Sub
После установки и активации макроса он будет обнаруживать любые изменения значений вА1черезА20и отрегулируйте остальные значения, чтобы сохранить 100. Изменяйте только одну ячейку за раз.
Поскольку это код рабочего листа, его очень легко установить и использовать автоматически:
- щелкните правой кнопкой мыши имя вкладки в нижней части окна Excel
- выберите «Просмотреть код» — откроется окно VBE
- вставьте текст и закройте окно VBE
Если у вас возникли какие-либо сомнения, попробуйте сначала на пробном листе.
Если вы сохраните книгу, макрос будет сохранен вместе с ней. Если вы используете версию Excel позже 2003, вы должны сохранить файл как .xlsm, а не .xlsx
Чтобы удалить макрос:
- откройте окна VBE, как указано выше
- очистить код
- закрыть окно VBE
Чтобы узнать больше о макросах в целом, см.:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
и
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
Чтобы узнать больше о макросах событий (код рабочего листа), см.:
http://www.mvps.org/dmcritchie/excel/event.htm
Для работы этого метода должны быть включены макросы!