Есть ли способ сделать один сброс значения ячейки в другой и очистить себя в Excel? - PullRequest
0 голосов
/ 07 февраля 2012

Итак, чтобы сделать это просто.У меня есть Ячейки A, B, C, D

Cell D = B-C

B - это, в основном, яблоки, выигранные, а C - яблоки, потерянные для целей объяснения.D - это чистые яблоки.

Я хочу сделать так, чтобы я мог ввести количество яблок, выигранных в ячейку A, а затем добавить это число в ячейку B, затем очистить A или разрешить очиститьэто при сохранении значения ячейки B B + A.

Спасибо

1 Ответ

2 голосов
/ 07 февраля 2012

Только с кодом

Если вы:

  • щелкните правой кнопкой мыши вкладку листа
  • Просмотреть код
  • скопируйте и вставьте код ниже

Тогда ячейки с B1 по B5 будут содержать промежуточную сумму всех соответствующих значений от A1 до A5.Измените эту строку Set rng1 = Intersect(Target, Range("A1:A5")), чтобы задать диапазон, в котором работает код (текущие итоги добавляются к правому краю)

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng1 As Range
    Dim rng2 As Range
    Set rng1 = Intersect(Target, Range("A1:A5"))
    If rng1 Is Nothing Then Exit Sub
    Application.EnableEvents = False
    For Each rng2 In rng1.Cells
        rng2.Offset(0, 1).Value = rng2.Offset(0, 1).Value + rng2.Value
    Next
    Application.EnableEvents = True
End Sub

[обновлено - для дополнительного запроса вы можете попробовать это]

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng1 As Range
    Dim rng2 As Range
    Application.EnableEvents = False
    Set rng1 = Intersect(Target, Range("A1:A5"))
    If Not rng1 Is Nothing Then Call UpdateCells(rng1, 1)
    Set rng1 = Intersect(Target, Range("D1:D5"))
    If Not rng1 Is Nothing Then Call UpdateCells(rng1, 2)
    Application.EnableEvents = True
End Sub


Sub UpdateCells(ByVal rng1, lngCol As Long)
    Dim rng2 As Range
    For Each rng2 In rng1.Cells
        rng2.Offset(0, lngCol).Value = rng2.Offset(0, lngCol).Value + rng2.Value
    Next
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...