从 Excel-DNA 中的工具栏激活写入当前单元格
Write to current cell from toolbar activation in Excel-DNA
我有一个函数可以从工具栏上的按钮获取 运行。
该按钮加载一个 windows 表单,允许用户执行产品查找和 returns 产品代码:
丝带:
<button id='btnProductLookup' label='Product Code Lookup' image='ProdCode' size='large' onAction='ProductCodeLookup'/>
方法:
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);
}
}
}
我想将lookup.SelectedProductCode
中的值写入当前选中的单元格,但每次都出现异常。
C API (XlCall.Excel
) 不能直接在功能区处理程序中使用。
您可以使用 ExcelAsyncUtil.QueueAsMacro(...)
转换到宏上下文或在此设置中使用 COM 对象模型。
我有一个函数可以从工具栏上的按钮获取 运行。
该按钮加载一个 windows 表单,允许用户执行产品查找和 returns 产品代码:
丝带:
<button id='btnProductLookup' label='Product Code Lookup' image='ProdCode' size='large' onAction='ProductCodeLookup'/>
方法:
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);
}
}
}
我想将lookup.SelectedProductCode
中的值写入当前选中的单元格,但每次都出现异常。
C API (XlCall.Excel
) 不能直接在功能区处理程序中使用。
您可以使用 ExcelAsyncUtil.QueueAsMacro(...)
转换到宏上下文或在此设置中使用 COM 对象模型。