Входное значение и формула фона в той же ячейке - PullRequest
0 голосов
/ 29 апреля 2018

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

Вот значения сегодня.

A1: 100<Br>
A2: 200<BR>
A3: 300

C1: 1,1

Я бы хотел, чтобы A1, A2 и A3 умножались на C1, когда вы нажимаете клавишу ввода после ввода значения. Чем я хотел бы изменить значение в C1 в будущем, и все значения в column A будут обновлены соответствующим образом.

Если я сделаю ввод 100, я бы хотел обновить его до 110 в приведенном выше примере, но если позже я изменю C1 на 1,2, то он автоматически станет 120.

Это, конечно, было бы очень легко сделать в другом столбце, как в B: "=A1*$C$1". Но я действительно хотел бы использовать только одну ячейку для этого документа.

Это невозможно без VBA? Если да, то как мне это сделать VBA? Заранее спасибо.

1 Ответ

0 голосов
/ 29 апреля 2018

Отредактировано после разъяснений ФП

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim values As Variant
    Dim rngToChange As Range
    Dim targetRow As Long

    Select Case True
        Case Not Intersect(Target, Range("A1:A3")) Is Nothing
            Set rngToChange = Intersect(Target, Range("A1:A3"))
            If Target.Count = 1 Then targetRow = Target.Row

        Case Target.Address = "$C$1"
            Set rngToChange = Range("A1:A3")

        Case Else
            Exit Sub
    End Select

    With Range("C1")
        If .Comment Is Nothing Then .AddComment(Join(Application.Transpose(Range("A1:A3").Value), " ")).Visible = False
        values = Split(.Comment.Text, " ")
        If targetRow <> 0 Then
            values(targetRow - 1) = Target.Value
            .ClearComments
            .AddComment(Join(values, " ")).Visible = False
        End If
    End With

    Dim cell As Range
    On Error GoTo goodexit
    Application.EnableEvents = False
    For Each cell In rngToChange
        cell.Value = values(cell.Row - 1) * Range("c1").Value
    Next

goodexit:
    Application.EnableEvents = True

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...