Excel.Application
属性,如 Interactive
和 EnableEvents
为 false
,以提高速度和用户体验。
我的问题是选项卡没有窃取焦点,因此如果用户在单击我的选项卡按钮时正在编辑单元格,则会抛出异常,因为Excel认为用户仍在编辑单元格。
是否有一种方法可以通过保存或放弃对单元格所做的更改来停止编辑?
似乎 Range.DiscardChanges()
可以解决我的问题,但在2007 API中不可用。
编辑:似乎 Range.DiscardChanges()
是针对基于OLAP数据源的范围,因此无论如何都无法解决我的问题。
编辑:我尝试在另一个单元格上调用 Range.Activate()
,虽然我在 GUI 中看到单元格焦点正在更改,但仍会抛出异常。 Range.Select()
不起作用。
Application.SendKeys()
并没有起作用。我感觉此时Ribbon处于焦点状态,ESC键不会影响正在编辑的单元格。 - dee-see