Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Excel中编辑单元格时添加PowerPoint图表_C#_Excel_Vsto_Powerpoint - Fatal编程技术网

C# 在Excel中编辑单元格时添加PowerPoint图表

C# 在Excel中编辑单元格时添加PowerPoint图表,c#,excel,vsto,powerpoint,C#,Excel,Vsto,Powerpoint,我正在制作一个VSTO PowerPoint加载项,它可以将图表添加到幻灯片中。添加图表时,我使用以下代码行: private void button2_Click(object sender, RibbonControlEventArgs e) { Globals.ThisAddIn.Application.ActivePresentation.Slides[1].Shapes.AddChart(XlChartType.xlLine); } 这样做有效,并且添加了图表。但是,如果用户

我正在制作一个VSTO PowerPoint加载项,它可以将图表添加到幻灯片中。添加图表时,我使用以下代码行:

private void button2_Click(object sender, RibbonControlEventArgs e)
{
    Globals.ThisAddIn.Application.ActivePresentation.Slides[1].Shapes.AddChart(XlChartType.xlLine);
}
这样做有效,并且添加了图表。但是,如果用户打开Excel应用程序并正在积极编辑单元格,则会出现以下异常:

System.Runtime.InteropServices.COMException: 'Error HRESULT E_FAIL has been returned from a call to a COM component.'

我找到了有关此问题的博客文章,但由于我的加载项是在PowerPoint中制作的,因此我无法访问Excel应用程序。VSTO中是否有任何方法可以确保Excel未处于PowerPoint加载项的编辑模式?

我不是100%确定,但我几乎100%确定您对问题的诊断是错误的。我相信用户可以在Excel中编辑。问题在于
AddChart
方法创建了一个新的Excel实例/窗口,它会立即窃取焦点,从而截获用户的击键。因此,如果用户在outlook中键入电子邮件,或在浏览器窗口中输入搜索词等,则会出现此问题。实际上,用户所做的任何操作都可能导致PowerPoint出现这种行为。我自己已经测试过,没有键入。如果某个单元格未被编辑,图表将被添加,而如果该单元格处于编辑模式,则会引发异常。好的,警告一句:如果您尚未遇到上述错误情况,您将遇到。除了建议用户在不尝试在其他应用程序上执行多任务的情况下让外接程序工作之外,这是不可避免的。我有,但感谢您指出。您可以尝试以下方式: