VSTO C#:读取始终为nul的当前单元格值
情景: 我必须阅读活动表中活动单元格的内容。如果当时的值为非空,例如“abc”,我必须禁用功能区栏中的一个项目,当用户清除该时间项目上的单元格时,功能区栏中的项目应为enable item 我编写了以下代码以获取当前单元格的值:VSTO C#:读取始终为nul的当前单元格值,c#,excel,vsto,C#,Excel,Vsto,情景: 我必须阅读活动表中活动单元格的内容。如果当时的值为非空,例如“abc”,我必须禁用功能区栏中的一个项目,当用户清除该时间项目上的单元格时,功能区栏中的项目应为enable item 我编写了以下代码以获取当前单元格的值: private string CurrrentCellValue() { var BeginCell = string.Empty; var CellValue = string.Empty; var activeWorkBook = Glob
private string CurrrentCellValue()
{
var BeginCell = string.Empty;
var CellValue = string.Empty;
var activeWorkBook = Globals.ThisAddIn.Application.ActiveWorkbook;
if (activeWorkBook != null)
{
var sheet = activeWorkBook.ActiveSheet as Worksheet;
if (!sheet.ProtectContents)
{
var range = Globals.ThisAddIn.Application.Selection as Range;
if (range != null)
{
string address = range.get_Address();
string[] cells = address.Split(new char[] { ':' });
BeginCell = cells[0].Replace("$", "");
var activeSheet = Globals.ThisAddIn.Application.ActiveSheet;
range = activeSheet.Range(BeginCell);
Range item = range.get_Item(1);
CellValue = item.Value2;
}
}
}
return CellValue;
}
功能区栏中的项目:
我已将命令(ICommand)用于功能区栏中的项
_ribbonItem.ItemOpenCommand = new DelegateCommand(ItemButtonClick, canexecuteMethdod1);
我所做的是:
在canexecuteMethdod1方法中,我调用了该方法来读取当前单元格,如果此时单元格值不为null,ItemButtonClick方法将不会执行,否则它将执行
但我面临的问题是,当活动单元格中有某个值时,我得到的所有值都是null。如何动态读取活动单元格的内容
简而言之,我正在尝试复制excel的fx(插入函数)
请提供帮助。您是想判断Excel是否处于单元格编辑模式,还是只想在用户接受活动单元格后获取其值?当用户通过按enter、tab、光标键等退出单元格编辑模式时,接受单元格值。。。如果您想要的是前者,那么现有的问题是如何判断Excel是否处于单元格编辑模式。我已使用SendKeys({ENTER})以编辑模式退出单元格,现在如果我在单元格中键入任何值,我的功能区项将被禁用,如果已启用清除单元格功能区项。但问题是,当我运行任何公式时,它以字符串的形式给出输出,并且在选择单元格时,功能区中的项目也被禁用,但应该启用。请帮助。您是想告诉Excel是否处于单元格编辑模式,还是只想在用户接受活动单元格后获取其值?当用户通过按enter、tab、光标键等退出单元格编辑模式时,接受单元格值。。。如果您想要的是前者,那么现有的问题是如何判断Excel是否处于单元格编辑模式。我已使用SendKeys({ENTER})以编辑模式退出单元格,现在如果我在单元格中键入任何值,我的功能区项将被禁用,如果已启用清除单元格功能区项。但问题是,当我运行任何公式时,它以字符串的形式给出输出,当选择单元格时,即使在那个时候,ribbon中的项也被禁用,但它应该被启用。请帮助。