gpt4 book ai didi

c# - 获取仍在编辑的 Excel 单元格的值

转载 作者:行者123 更新时间:2023-12-04 04:54:19 27 4
gpt4 key购买 nike

我需要捕获在我的 Excel 插件中选择的任何一个或多个单元格中包含的值。我目前正在使用 ...ActiveWindow.Selection 和 get_Value() 来一次选择多个单元格和 ...ActiveCell .Value 以获取单个单元格被选中。我的问题是,如果您在单个单元格中输入单个值并单击捕获值的按钮,如果该单元格仍在被编辑(光标仍在单元格中但您已输入值),则所有内容都会返回 null .有谁知道捕捉这个值(value)的方法?在尝试输入单个值时,我已经可以看到它是我的用户混淆的根源。

要求澄清:

var selectedCell = Globals.ThisAddIn.Application.ActiveCell.Value;

如果我在此单元格中输入一个值并立即单击按钮,则此值为 null,因为该单元格处于编辑模式而不是选定模式。为了使其工作,我必须单击单元格,然后单击它进行选择。想想一个单元格的不同状态……如果你双击它,它就处于编辑模式。如果单击一次,它将被选中。我想要一个仍处于编辑模式的单元格的值。

最佳答案

我们在 VSTO 加载项中遇到了同样的问题。经过大量研究,我们得出结论,VSTO api 无法获取仍处于编辑模式的单元格的值。我们最终破解了以下解决方案:每当按下按钮时,它都会检查 Excel 是否处于编辑模式,如果是,它会弹出一个对话框,告诉用户他们必须在按下按钮之前退出编辑模式。

检查您是否处于编辑模式的代码是:

public bool IsInEditMode()
{
const int menuItemType = 1;
const int newMenuId = 18;

CommandBarControl newMenu =
Application.CommandBars["Worksheet Menu Bar"].FindControl(menuItemType, newMenuId, Type.Missing, Type.Missing, true);

return newMenu != null && !newMenu.Enabled;
}

您可以在以下位置查看更多信息: How to tell if Excel Application is in cell-edit mode?

关于c# - 获取仍在编辑的 Excel 单元格的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16989797/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com