VSTO 撤回代码修改的值

简介: 这段代码实现了一个简单的撤销功能。它使用一个栈(`Stack<Action>`)来存储操作,`SetCellValues`方法记录单元格的当前状态(值)并在栈中保存恢复操作。`UndoLastOperation`方法检查栈是否为空,如果不为空,则弹出顶部的操作并执行以撤销最近的更改。

不废话,直接代码

private Stack<Action> actionStack = new Stack<Action>();
private void SetCellValues()
{
    var worksheet = Globals.ThisAddIn.Application.ActiveSheet as Excel.Worksheet;
    var range = worksheet.Range["A1"];
    var previousValue = range.Value2;
    // 保存当前状态以便恢复
    actionStack.Push(() =>
    {
        range.Value2 = previousValue;
    });
}
private void UndoLastOperation()
{
    if (actionStack.Count > 0)
    {
        var undoAction = actionStack.Pop();
        undoAction();
    }
}
相关文章
|
3月前
|
开发工具
如何修改Vscode查看源代码管理版本变动文件的查看方式
这篇文章介绍了如何在VSCode中通过源代码管理插件修改查看源代码版本变动文件的方式,提供了树形视图和列表视图两种查看方法,并说明了如何通过设置选项来切换查看方式,帮助用户根据自己的喜好更高效地查看和管理代码变动。
如何修改Vscode查看源代码管理版本变动文件的查看方式
|
5月前
|
Windows
【Windows驱动开发】注册表的基本操作(创建、打开、修改、读取、枚举)(附源码)
【Windows驱动开发】注册表的基本操作(创建、打开、修改、读取、枚举)(附源码)
大事件项目41---点击发布和草稿按钮,标记保存到表单对象里
大事件项目41---点击发布和草稿按钮,标记保存到表单对象里
|
6月前
|
前端开发 JavaScript 安全
神奇的代码——可随意修改复制页面内容
神奇的代码——可随意修改复制页面内容
|
11月前
|
JSON 安全 数据安全/隐私保护
WebOffice 网页版在线 Office 的 Word 文档权限控制,限制编辑,只读、修订模式、禁止复制等
在一些在线 Office 文档中,有很多重要的文件需要保密控制,比如:报价单、客户资料等数据,只能给公司成员查看,但是不能编辑,并且不能拷贝,防止重要资料外泄。可以通过猿大师办公助手的在线 Office 的文档编辑权限来解决这些问题!
239 1
|
前端开发 测试技术
clswindow使用案例:防止vb程序重复打开,如果重复打开则激活当前已经打开的程序
clswindow使用案例:防止vb程序重复打开,如果重复打开则激活当前已经打开的程序
276 0
clswindow使用案例:防止vb程序重复打开,如果重复打开则激活当前已经打开的程序
【Excel自动化办公Part3】:工作表的创建、删除、复制和修改名称,冻结窗格,添加筛选
【Excel自动化办公Part3】:工作表的创建、删除、复制和修改名称,冻结窗格,添加筛选
165 0
【Excel自动化办公Part3】:工作表的创建、删除、复制和修改名称,冻结窗格,添加筛选
|
Web App开发 Windows
当UI走查说页面色值错误时,先别急着检查代码
颜色一直是UI设计师们非常敏感的问题,为何屏幕会出现色差?工作中如何避免?
|
前端开发
前端工作总结107-修改记录取消文本提示ele提示
前端工作总结107-修改记录取消文本提示ele提示
131 0
IntelliJ IDEA - 设置自动保存时间 / 提示未保存的星号 (*)
IntelliJ IDEA - 设置自动保存时间 / 提示未保存的星号 (*)
1296 0
IntelliJ IDEA - 设置自动保存时间 / 提示未保存的星号 (*)