C# 从Excel DNA中的工具栏激活写入当前单元格

C# 从Excel DNA中的工具栏激活写入当前单元格,c#,excel-dna,C#,Excel Dna,我有一个从工具栏上的按钮运行的函数 该按钮加载windows窗体,允许用户执行产品查找并返回产品代码: 功能区: <button id='btnProductLookup' label='Product Code Lookup' image='ProdCode' size='large' onAction='ProductCodeLookup'/> 我想将lookup.SelectedProductCode中的值写入当前选定的单元格,但每次都会出现异常。功能区处

我有一个从工具栏上的按钮运行的函数

该按钮加载windows窗体,允许用户执行产品查找并返回产品代码:

功能区:

          <button id='btnProductLookup' label='Product Code Lookup' image='ProdCode' size='large' onAction='ProductCodeLookup'/>
我想将
lookup.SelectedProductCode
中的值写入当前选定的单元格,但每次都会出现异常。

功能区处理程序中不能直接使用C API(
XlCall.Excel


您可以使用
ExcelAsyncUtil.QueueAsMacro(…)
转换到宏上下文,也可以在此设置中使用COM对象模型。

您真是个活生生的传奇!我爱卓越的DNA!
    public void ProductCodeLookup(IRibbonControl control)
    {
        using (FrmProductLookup lookup = new FrmProductLookup(_callHandler))
        {
            DialogResult result = lookup.ShowDialog();
            if (result == DialogResult.OK)
            {
                ExcelReference current = XlCall.Excel(XlCall.xlfActiveCell) as ExcelReference;
                MessageBox.Show(current.ColumnFirst.ToString());
                MessageBox.Show(lookup.SelectedProductCode);
            }

        }
    }