У меня есть колонка с 3 ячейками: A1, A2 и A3. Я хочу, чтобы числовая сумма 3 ячеек оставалась постоянной, когда я увеличивала или уменьшала любую из 3 ячеек. То есть мне нужно любое увеличение или уменьшение любой ячейки, чтобы она равномерно распределялась между двумя другими ячейками. Например, я начинаю с 3 + 5 + 2 = 10. Я изменяю 5 на 6, поэтому автоматически получаю 2,5 + 6 + 1,5 = 10. Пожалуйста, имейте в виду, что на самом деле у меня будет около 20 ячеек, которые я хочу равняться константе 100. Большое спасибо.

1 ответ1

1

Заполните A1 - A20 значениями, которые составляют до 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

Как только макрос установлен и активен, он обнаружит любое изменение значений от A1 до A20 и отрегулирует другие значения, чтобы сохранить 100. Меняйте только одну ячейку за раз.

Поскольку это код рабочего листа, его очень легко установить и использовать автоматически:

  1. щелкните правой кнопкой мыши имя вкладки в нижней части окна Excel
  2. выберите View Code - откроется окно VBE
  3. вставьте материал и закройте окно VBE

Если у вас есть какие-либо проблемы, сначала попробуйте на пробную версию.

Если вы сохраните книгу, макрос будет сохранен вместе с ней. Если вы используете версию Excel более поздней, чем в 2003 году, вы должны сохранить файл как .xlsm, а не .xlsx

Чтобы удалить макрос:

  1. вызвать окна VBE, как указано выше
  2. очистить код
  3. закройте окно 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

Макросы должны быть включены, чтобы это работало!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .