живое исполнение формулы - PullRequest
0 голосов
/ 26 ноября 2009

можем ли мы выполнить формулу, не перемещая курсор из ячейки? После передачи данных в ячейку ввода мы либо нажимаем клавишу ввода, либо выходим из этой ячейки, а затем выполняется любая связанная с этим формула. Есть ли способ, что при вводе самого ввода мы можем увидеть результат в выводе в Excel? Пожалуйста, помогите мне найти эту опцию.

Ответы [ 2 ]

2 голосов
/ 26 ноября 2009

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

Вы можете иметь формулу «прислушиваться», когда ячейка обновляется, но это немного сложно. Затем он может заставить вас вернуться в исходную ячейку после обновления. Вот как вы можете написать некоторый код для «прослушивания», когда значение ячейки изменяется. В следующем примере:

  • Я записываю значение Cell I1 в strValue.
  • Затем я запускаю цикл, который продолжает работать, пока значение ячейки I1 не изменилось.
  • Команда DoEvents возвращает управление обратно процессору, что позволяет вам работать в Excel во время его работы.
  • Как только значение ячейки I1 изменится, оператор While станет ложным, и цикл завершится.
  • После выхода из цикла появляется окно с сообщением об изменении значения, а затем снова выбирается исходная ячейка.

Sub testChange()
Dim strValue As String

strValue = Range("I1").Value

Do While strValue = Range("I1").Value
    DoEvents
Loop

MsgBox "The value changed!"
Range("I1").Activate
End Sub

Возможно, если вы просто хотите возвращать элемент управления обратно в исходную ячейку каждый раз, когда значение изменяется, вы можете использовать приведенную выше строку без окна сообщения и вернуться к циклу после выполнения вашего метода. Помните, что вам, возможно, придется найти другой способ выхода из кода, если вы сделаете это.

Почему вы хотите, чтобы он выполнялся внутри клетки? Какова конечная цель вашей задачи?

0 голосов
/ 07 декабря 2009

Нажмите F9, чтобы выполнить перерасчет, не выходя из входной ячейки. Это работает в Excel 2007. Я не уверен насчет более ранних версий.

...