Excel VSTO:如何在不丢失撤消堆栈的情况下设置单元格值?

时间:2015-01-08 15:30:29

标签: c# excel vsto cell undo

我正在使用C#4.0在Visual Studio 2013上开发Excel 2013加载项 我刚刚制作了一个带有简单按钮的自定义功能区,该按钮在单元格A2中设置了一个值。 它工作正常但是点击按钮后,我丢失了所有撤消操作堆栈,我不知道为什么......

我尝试用几种方法设置单元格值:

Worksheet worksheet = (Worksheet)ThisAddIn.Current.Application.ActiveSheet;
worksheet.Cells[2, "A"] = "test";

Range cell = worksheet.get_Range("A2", Type.Missing);
cell.Value = "test";

cell.Value2 = "test";

cell.set_Value(Type.Missing, "test");

之后,撤消箭头被禁用,我无法撤消写入操作。为什么?感谢

1 个答案:

答案 0 :(得分:0)

许多操作都清除了撤销堆栈,据我所知,没有办法阻止它。这是some information about macros,但它也适用于VSTO开发:

  

许多宏操作清除撤消堆栈。一般来说:只要您的宏更改工作簿中的任何对象。不幸的是,没有办法防止这种情况发生。如果您希望能够撤消宏操作,则必须编写代码才能执行此操作。即使这样,当前的撤销堆栈也会丢失。

这里还有一点more information