Excel 公式的实时执行
我们能在不移动单元格光标的情况下执行公式吗?将数据输入到输入单元格后,我们可以按enter键,也可以从该单元格中移出,然后执行与该单元格相关的任何公式。是否有任何方法可以在输入本身时在excel中的输出中看到结果?请帮助我找到此选项。我认为当单元格的“编辑器”具有焦点和控制权时,代码不可能执行。例如,在编辑公式时,尝试在Excel中执行其他操作。我认为,在代码执行之前,单元格必须完成其值或公式的保存 当一个单元格被更新时,你可以有一个公式“监听”,但这有点复杂。一旦更新后,它可能会迫使您返回原始单元格。下面是如何编写一些代码来“侦听”单元格值的变化。在以下示例中:Excel 公式的实时执行,excel,execution,formulas,Excel,Execution,Formulas,我们能在不移动单元格光标的情况下执行公式吗?将数据输入到输入单元格后,我们可以按enter键,也可以从该单元格中移出,然后执行与该单元格相关的任何公式。是否有任何方法可以在输入本身时在excel中的输出中看到结果?请帮助我找到此选项。我认为当单元格的“编辑器”具有焦点和控制权时,代码不可能执行。例如,在编辑公式时,尝试在Excel中执行其他操作。我认为,在代码执行之前,单元格必须完成其值或公式的保存 当一个单元格被更新时,你可以有一个公式“监听”,但这有点复杂。一旦更新后,它可能会迫使您返回原始
- 我将单元格
的值记录到I1
李>strValue
- 然后我运行一个循环,只要cell
的值没有改变,该循环就会一直运行李>I1
命令将控制权释放回处理器,这使您可以在运行Excel时在Excel中工作DoEvents
- 一旦单元格
的值发生变化,I1
语句将为false,循环将退出While
- 循环退出后,会弹出一个消息框,告诉您值已更改,然后再次选择原始单元格
为什么要让它在单元格内执行?任务的最终目的是什么?按F9键可在不离开输入单元格的情况下重新计算。这在Excel2007中工作。我不确定早期版本。据我所知,您唯一可用的事件是工作表更改(ByVal Target As Range),该事件在更改完成时触发,即当您离开目标时。在你描述的场景中,你会听什么?在我看来,你需要一个我认为不存在的事件,比如改变。@Mathias-见我上面的例子。它使用
DoEvents
和一个循环来“侦听”单元格值的变化。在Excel 2003中测试宏时,MsgBox仅在按Enter键完成单元格编辑后才会触发。Value属性直到then@barrowc-你说得对。我不相信有一种方法可以在方法被更新之前触发它的执行。但是,如果要立即尝试新值,则过程本身可以强制将焦点返回到单元格。当然,如果你想执行“自动完成建议列表”之类的样式的东西,这对你没有帮助。你能解释一下为什么要这样做吗?我可以看到这个问题,但这样做没有好处。不是批评,只是好奇。
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