C# Excel VSTO:如何在不丢失撤消堆栈的情况下设置单元格值?
我正在用C#4.0在Visual Studio 2013上开发一个Excel 2013外接程序 我刚刚制作了一个自定义功能区,带有一个简单的按钮,可以在单元格A2中设置一个值。 它工作正常,但在点击按钮后,我丢失了所有的撤消操作堆栈,我不知道为什么 我尝试用几种方法设置单元格值:C# Excel VSTO:如何在不丢失撤消堆栈的情况下设置单元格值?,c#,excel,vsto,cell,undo,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";
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");
之后,撤消箭头被禁用,我无法撤消写入操作。为什么?谢谢许多操作清除了撤消堆栈,据我所知,没有办法阻止它。这里是,但它也适用于VSTO开发: 许多宏操作清除撤消堆栈。一般来说:只要宏更改工作簿中的任何对象。不幸的是,没有办法阻止这种情况发生。如果希望能够撤消宏操作,则必须编写代码才能撤消宏操作。即使这样,当前撤消堆栈也会丢失 这里也有一点