Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Excel VSTO:如何在不丢失撤消堆栈的情况下设置单元格值?_C#_Excel_Vsto_Cell_Undo - Fatal编程技术网

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

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";

我正在用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");

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

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

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

这里也有一点