我正在构建一个VSTO Excel加载项,用于处理多个单元格的值.我想允许用户通过标准Excel功能撤消和重做加载项创建的更改.我宁愿避免使用VBA.
这可能吗?如果是这样,怎么样?
另一个问题:是否有可能检查现有的撤消/重做堆栈?
您没有提到要使用哪个版本的Excel / .NET / VSTO运行时,但这并不重要:]
自定义撤消只是在不注入VBA的情况下才能完成,您需要在其中设置撤消方法来回滚您的通过使用补偿(即反向操作)或通过恢复保存的状态来执行操作。
Ric*_*nka -1
我实际采用的解决方案如下:
显然,这是本地化的单元格操作,因此您不能将任意操作/回调推送到撤消堆栈。另外,我显然违反了 Windows 中剪贴板使用的原则,但如果微软为此类事情公开了更好的 API(提示),我就不必这样做。
此外,我没有采用我在 David Zemens 的答案的第一条评论中描述的解决方案,因为我在我们的环境中遇到了一些安全违规(即,将 VBA 代码注入工作簿是禁忌)。
不管怎样,谢谢大家!
| 归档时间: |
|
| 查看次数: |
2814 次 |
| 最近记录: |