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();
    }
}
相关文章
|
8月前
|
运维 Devops
云效产品使用报错问题之代码域修改配置后,删除了代码组,代码未删除,但是项目现在看不到了,如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
5月前
|
开发工具
如何修改Vscode查看源代码管理版本变动文件的查看方式
这篇文章介绍了如何在VSCode中通过源代码管理插件修改查看源代码版本变动文件的方式,提供了树形视图和列表视图两种查看方法,并说明了如何通过设置选项来切换查看方式,帮助用户根据自己的喜好更高效地查看和管理代码变动。
如何修改Vscode查看源代码管理版本变动文件的查看方式
|
6月前
webstorm【实用教程】代码自动格式,格式化时清除空行,修改使用代码模板
webstorm【实用教程】代码自动格式,格式化时清除空行,修改使用代码模板
495 2
大事件项目41---点击发布和草稿按钮,标记保存到表单对象里
大事件项目41---点击发布和草稿按钮,标记保存到表单对象里
|
Cloud Native Go Windows
兄弟 Goland 咱能一次性将注释设置好不
兄弟 Goland 咱能一次性将注释设置好不
|
安全 数据可视化 数据安全/隐私保护
【Win32】资源文件(对话框),逆向对话框回调函数,消息断点(附带恶意软件源码)(上)
【Win32】资源文件(对话框),逆向对话框回调函数,消息断点(附带恶意软件源码)
【Win32】资源文件(对话框),逆向对话框回调函数,消息断点(附带恶意软件源码)(下)
【Win32】资源文件(对话框),逆向对话框回调函数,消息断点(附带恶意软件源码)
|
开发工具 git
git命令怎么取消合并?
git命令怎么取消合并?
265 0
git命令怎么取消合并?
Revit二次开发—更改激活视图(activeview)失败原因
Revit二次开发—更改激活视图(activeview)失败原因
Revit二次开发—更改激活视图(activeview)失败原因